RDS for Oracle と Amazon EFS ファイルシステム間のファイルの転送
RDS for Oracle インスタンスと Amazon EFS ファイルシステム間でファイルを転送するには、Oracle ディレクトリを 1 つまたは複数作成し、DB インスタンスのアクセスを制御する EFS ファイルシステム権限を設定します。
Oracle ディレクトリの作成
ディレクトリを作成するには、rdsadmin.rdsadmin_util.create_directory_efs
のプロシージャを使用します。 プロシージャには以下のパラメータがあります。
パラメータ名 | データ型 | デフォルト | 必須 | 説明 |
---|---|---|---|---|
|
VARCHAR2 |
– |
可能 |
Oracle ディレクトリの名前。 |
|
VARCHAR2 |
– |
可能 |
EFS ファイルシステムのパス。パス名のプレフィックスには 例えば、
|
fs-1234567890abcdef0
という EFS ファイルシステムに、/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 ファイルシステム間のデータ転送: 例
次の例では、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 にデータをインポートする」を参照してください。