Configurar o banco de dados Oracle de origem

Visão geral

Nesta seção, você verá como configurar seu banco de dados Oracle de origem para que o Datastream possa extrair dados dele.

Configurar o banco de dados Oracle de origem

Antes de usar o Datastream para extrair dados do banco de dados Oracle de origem, configure seu banco de dados:

  • configurar a geração de registros de arquivo para rastrear mudanças no banco de dados, como as operações insert, update, delete e rename;
  • Conceder os privilégios adequados à conta de usuário que será usada para se conectar ao seu banco de dados.
  • Definir uma política de retenção de dados para o banco de dados determinando por que dados serão arquivados, por quanto tempo serão mantidos, caso os dados no final do período de armazenamento sejam arquivados ou destruídos etc.

As informações sobre como configurar cada um desses tipos de banco de dados da Oracle são abordadas nas seções a seguir.

No momento, o Datastream funciona com os seguintes tipos de bancos de dados Oracle:

Configurar um banco de dados do Amazon RDS para Oracle

  1. Verifique se seu banco de dados está sendo executado no modo ARCHIVELOG. Para isso, execute o seguinte comando:

    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. 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.

    4. Configure a política de rotação de arquivos de registros da Oracle. Recomendamos definir um tamanho máximo de 512 MB para o arquivo de registros.

  2. Ative os dados de registro complementares. Para fazer isso, ative o registro complementar no 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
    

    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];
    GRANT CONNECT TO [user];
    GRANT CREATE SESSION TO [user];
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','[USER]','EXECUTE');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','[USER]','EXECUTE');
    GRANT SELECT ANY TRANSACTION TO [user];
    GRANT SELECT ANY TABLE TO [user];
    

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

    GRANT LOGMINING TO [user];

Configurar um banco de dados Oracle auto-hospedado

  1. Verifique se seu banco de dados está sendo executado no modo ARCHIVELOG. Para isso, execute o seguinte comando:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Se o resultado for ARCHIVELOG, avance para a etapa 2.

    2. Se o resultado for NOARCHIVELOG, será necessário ativar o modo ARCHIVELOG para seu banco de dados.

    3. Execute os seguintes comandos quando conectado como SYSDBA:

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
      
  2. Defina uma política de retenção de dados para seu banco de dados executando estes comandos do Oracle Recovery Manager (RMAN):

        RMAN > TARGET /
        RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
      

    Recomendamos que você mantenha backups e arquive registros por no mínimo quatro dias. Recomendamos sete dias.

  3. Volte para o prompt SQL da ferramenta de banco de dados que você está usando para configurar a política de rotação de arquivos de registros da Oracle. Recomendamos definir um tamanho máximo de 512 MB para o arquivo de registros.

  4. Ative os dados de registro complementares. Para fazer isso, ative o registro complementar no banco de dados executando o seguinte comando:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    

    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
    

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

    Execute o comando a seguir para ativar os dados de registro complementares em todo o banco de dados:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. 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];
    GRANT CONNECT TO [user];
    GRANT CREATE SESSION TO [user];
    GRANT SELECT ON SYS.V_$DATABASE TO [user];
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO [user];
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO [user];
    GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO [user];
    GRANT EXECUTE ON DBMS_LOGMNR TO [user];
    GRANT EXECUTE ON DBMS_LOGMNR_D TO [user];
    GRANT SELECT ANY TRANSACTION TO [user];
    GRANT SELECT ANY TABLE TO [user];
    

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

    GRANT LOGMINING TO [user];