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 registros 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, você pode 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ê mantenha backups e arquive registros por no mínimo quatro dias. Recomendamos sete dias.
    5. Configure a política de rotação de arquivos de registros da Oracle. Recomendamos configurar um tamanho máximo de arquivo de registro para um valor inferior a 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 em que você quer registrar 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 a concessão da permissão GRANT SELECT ANY TABLE, use a solução descrita na seção Captura de dados alterados da Oracle (CDC) 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;