在 RDS for Oracle 和 Amazon 檔案系統之間傳輸EFS檔案 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 RDS for Oracle 和 Amazon 檔案系統之間傳輸EFS檔案

若要在 RDS for Oracle 執行個體和 Amazon EFS 檔案系統之間傳輸檔案,請建立至少一個 Oracle 目錄,並設定EFS檔案系統許可來控制資料庫執行個體的存取。

建立 Oracle 目錄

若要建立 Oracle 目錄,請使用程序 rdsadmin.rdsadmin_util.create_directory_efs。 程序具有下列參數。

參數名稱 資料類型 預設 必要 描述

p_directory_name

VARCHAR2

Oracle 目錄的名稱。

p_path_on_efs

VARCHAR2

EFS 檔案系統的路徑。路徑名稱的字首使用模式 /rdsefs-fsid/,其中 fsid 是EFS檔案系統 ID 的預留位置。

例如,如果您EFS的檔案系統名為 fs-1234567890abcdef0,而且您在此名為 的檔案系統上建立子目錄mydir,您可以指定下列值:

/rdsefs-fs-1234567890abcdef0/mydir

假設您在EFS檔案系統 /datapump1上建立名為 的子目錄fs-1234567890abcdef0。下列範例會建立 Oracle 目錄DATA_PUMP_DIR_EFS,該目錄會指向EFS檔案系統上的/datapump1目錄。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,從檔案 datapump.dmp 中匯入名為 MY_TABLE 的資料表。此檔案位於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 上將資料匯入 Oracle RDS