Transferir arquivos entre o RDS para Oracle e um sistema de arquivos Amazon EFS
Para transferir arquivos entre uma instância do RDS para Oracle e um sistema de arquivos do Amazon EFS, crie pelo menos um diretório Oracle e configure as permissões do sistema de arquivos EFS para controlar o acesso à instância de banco de dados.
Criar um diretório Oracle
Para criar um diretório da Oracle, use o procedimento rdsadmin.rdsadmin_util.create_directory_efs
. O procedimento tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
VARCHAR2 |
– |
Sim |
O nome do diretório da Oracle. |
|
VARCHAR2 |
– |
Sim |
O caminho no sistema de arquivos EFS. O prefixo do nome do caminho usa o Por exemplo, se seu sistema de arquivos EFS for denominado
|
Suponha que você crie um subdiretório denominado /datapump1
no sistema de arquivos EFS fs-1234567890abcdef0
. O exemplo a seguir cria um diretório Oracle DATA_PUMP_DIR_EFS
que aponta para o diretório /datapump1
no sistema de arquivos EFS. O valor do caminho do sistema de arquivos para o parâmetro p_path_on_efs
é prefixado com a string /rdsefs-
.
BEGIN rdsadmin.rdsadmin_util.create_directory_efs( p_directory_name => 'DATA_PUMP_DIR_EFS', p_path_on_efs => '/rdsefs-
fs-1234567890abcdef0
/datapump1
'); END; /
Transferir dados de e para um sistema de arquivos EFS: exemplos
O exemplo a seguir usa o Oracle Data Pump para exportar a tabela denominada MY_TABLE
para o arquivo datapump.dmp
. Esse arquivo reside em um sistema de arquivos 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; /
O exemplo a seguir usa o Oracle Data Pump para importar a tabela denominada MY_TABLE
do arquivo datapump.dmp
. Esse arquivo reside em um sistema de arquivos 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; /
Para ter mais informações, consulte Importar dados para o Oracle no Amazon RDS.