在 RDS for Oracle 和 Amazon EFS 文件系统之间传输文件
要在 RDS for Oracle 实例和 Amazon EFS 文件系统之间传输文件,请至少创建一个 Oracle 目录并配置 EFS 文件系统权限以控制数据库实例访问权限。
创建 Oracle 目录
要创建 Oracle 目录,请使用过程 rdsadmin.rdsadmin_util.create_directory_efs
。 过程具有以下参数。
参数名称 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
VARCHAR2 |
– |
是 |
Oracle 目录的名称。 |
|
VARCHAR2 |
– |
是 |
EFS 文件系统上的路径。路径名的前缀使用模式 例如,如果您的 EFS 文件系统名为
|
假设您在 EFS 文件系统 fs-1234567890abcdef0
上创建了一个名为 /datapump1
的子目录。以下示例创建一个 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 RDS 上的 Oracle。