Configurar um banco de dados Oracle do Amazon RDS

  1. Verifique se seu banco de dados está sendo executado no modo ARCHIVELOG. Para isso, faça login no banco de dados Oracle e execute o seguinte comando no prompt SQL:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Se o resultado for ARCHIVELOG, avance para a etapa c.
    2. Se o resultado for NOARCHIVELOG, será necessário ativar o modo ARCHIVELOG para seu banco de dados.
    3. Como os arquivos de registro arquivados consomem espaço em disco, configure o parâmetro DB_RECOVERY_FILE_DEST_SIZE para seu banco de dados. Use esse parâmetro para especificar (em bytes) o limite absoluto no espaço total a ser usado pelos arquivos de recuperação do banco de dados de destino. Ao definir esse parâmetro, é possível gerenciar o equilíbrio entre proteger o banco de dados contra a falta de espaço em disco e a falha do stream devido à perda de posição do registro.
    4. Defina uma política de retenção de dados para seu banco de dados executando este comando:
      exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);
      Recomendamos que você retenha backups e registros de arquivamento por no mínimo quatro dias. Recomendamos sete dias.
    5. Configure a política de rotação de arquivos de registros da Oracle. Recomendamos definir o tamanho máximo do arquivo de registro como um valor menor que 1 GB.
  2. Ative os dados de registro complementares. Para isso, primeiro ative a geração de registros complementar mínima no nível do banco de dados executando o seguinte comando:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

    Em seguida, escolha se você quer ativar a geração de registros para tabelas específicas ou para todo o banco de dados.

    Para registrar alterações apenas em tabelas específicas, execute o seguinte comando em cada tabela que você quer replicar:

    ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

    Substitua:

    • SCHEMA: o nome do esquema que contém a tabela.
    • TABLE: o nome da tabela para a qual você quer registrar as alterações.

    Para replicar a maioria ou todas as tabelas do banco de dados, ative o registro para todo o banco de dados.

    No prompt SQL, execute o seguinte comando para habilitar dados de registro complementares para todo o banco de dados:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. Conceda os privilégios necessários à conta de usuário que será usada para se conectar ao seu banco de dados. Para isso, execute os seguintes comandos:

    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USER_NAME;
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','USER_NAME','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','USER_NAME','EXECUTE');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','USER_NAME','EXECUTE');
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;

    Caso sua organização não permita que você conceda a permissão GRANT SELECT ANY TABLE, use a solução descrita na seção Captura de dados de alteração (CDC) da Oracle da página de perguntas frequentes sobre o Datastream.

    Se o banco de dados de origem for Oracle 12c ou mais recente, conceda o seguinte privilégio adicional:

    GRANT LOGMINING TO USER_NAME;
  4. Conceda à conta de usuário acesso SELECT à visualização DBA_EXTENTS no seu banco de dados. Esse privilégio permite que você use o preenchimento automático baseado em ROWID para sua origem do Oracle:

    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

A seguir

  • Saiba mais sobre como o Datastream funciona com as fontes Oracle.