RDS for Oracle 인스턴스와 Amazon EFS 파일 시스템 간에 파일을 전송하려면 하나 이상의 Oracle 디렉터리를 생성하고 DB 인스턴스 액세스를 제어하도록 EFS 파일 시스템 권한을 구성해야 합니다.
Oracle 디렉터리 생성
Oracle 디렉터리를 생성하려면 rdsadmin.rdsadmin_util.create_directory_efs
프로시저를 사용합니다. 프로시저에는 다음과 같은 파라미터가 있습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
VARCHAR2 |
– |
예 |
Oracle 디렉터리의 이름입니다. |
|
VARCHAR2 |
– |
예 |
EFS 파일 시스템의 경로입니다. 경로 이름의 접두사는 예를 들어 EFS 파일 시스템의 이름이
|
EFS 파일 시스템 fs-1234567890abcdef0
에 이름이 /datapump1
인 하위 디렉터리를 생성한다고 가정해 보겠습니다. 다음 예제에서는 EFS 파일 시스템의 /datapump1
디렉터리를 가리키는 Oracle 디렉터리 DATA_PUMP_DIR_EFS
를 생성합니다. p_path_on_efs
파라미터의 파일 시스템 경로 값에는 문자열 접두사 /rdsefs-
가 붙습니다.
BEGIN rdsadmin.rdsadmin_util.create_directory_efs( p_directory_name => 'DATA_PUMP_DIR_EFS', p_path_on_efs => '/rdsefs-
fs-1234567890abcdef0
/datapump1
'); END; /
EFS 파일 시스템으로/EFS 파일 시스템에서 데이터 전송: 예제
다음 예제에서는 Oracle Data Pump를 사용하여 이름이 MY_TABLE
인 테이블을 datapump.dmp
파일로 내보냅니다. 이 파일은 EFS 파일 시스템에 있습니다.
DECLARE
v_hdnl NUMBER;
BEGIN
v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'TABLE', job_name=>null);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => 'datapump.dmp',
directory => 'DATA_PUMP_DIR_EFS',
filetype => dbms_datapump.ku$_file_type_dump_file);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => 'datapump-exp.log',
directory => 'DATA_PUMP_DIR_EFS',
filetype => dbms_datapump.ku$_file_type_log_file);
DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
다음 예제에서는 Oracle Data Pump를 사용하여 이름이 MY_TABLE
인 테이블을 datapump.dmp
파일로 가져옵니다. 이 파일은 EFS 파일 시스템에 있습니다.
DECLARE
v_hdnl NUMBER;
BEGIN
v_hdnl := DBMS_DATAPUMP.OPEN(
operation => 'IMPORT',
job_mode => 'TABLE',
job_name => null);
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => 'datapump.dmp',
directory => 'DATA_PUMP_DIR_EFS',
filetype => dbms_datapump.ku$_file_type_dump_file );
DBMS_DATAPUMP.ADD_FILE(
handle => v_hdnl,
filename => 'datapump-imp.log',
directory => 'DATA_PUMP_DIR_EFS',
filetype => dbms_datapump.ku$_file_type_log_file);
DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
자세한 내용은 Amazon RDS의 Oracle로 데이터 가져오기 단원을 참조하십시오.