Transferir arquivos entre o RDS para Oracle e um sistema de arquivos Amazon EFS - Amazon Relational Database Service

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

p_directory_name

VARCHAR2

Sim

O nome do diretório da Oracle.

p_path_on_efs

VARCHAR2

Sim

O caminho no sistema de arquivos EFS. O prefixo do nome do caminho usa o /rdsefs-fsid/ padrão, em que fsid é um espaço reservado para o ID do sistema de arquivos EFS.

Por exemplo, se seu sistema de arquivos EFS for denominado fs-1234567890abcdef0 e você criar um subdiretório nesse sistema de arquivos chamado mydir, você poderá especificar o seguinte valor:

/rdsefs-fs-1234567890abcdef0/mydir

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.