RDS for Oracle と Amazon EFS ファイルシステム間のファイルの転送 - Amazon Relational Database Service

RDS for Oracle と Amazon EFS ファイルシステム間のファイルの転送

RDS for Oracle インスタンスと Amazon EFS ファイルシステム間でファイルを転送するには、Oracle ディレクトリを 1 つまたは複数作成し、DB インスタンスのアクセスを制御する EFS ファイルシステム権限を設定します。

Oracle ディレクトリの作成

ディレクトリを作成するには、rdsadmin.rdsadmin_util.create_directory_efs のプロシージャを使用します。 プロシージャには以下のパラメータがあります。

パラメータ名 データ型 デフォルト 必須 説明

p_directory_name

VARCHAR2

可能

Oracle ディレクトリの名前。

p_path_on_efs

VARCHAR2

可能

EFS ファイルシステムのパス。パス名のプレフィックスには /rdsefs-fsid/ パターンが使用されています。fsid は EFS ファイルシステム ID のプレースホルダーです。

例えば、fs-1234567890abcdef0 という名前の EFS ファイルシステムがあり、この mydir という名前のファイルシステムにサブディレクトリを作成する場合、次の値を指定できます。

/rdsefs-fs-1234567890abcdef0/mydir

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 にデータをインポートする」を参照してください。