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.