Configurar la base de datos de Oracle de origen

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Descripción general

En esta sección, se describe cómo configurar la base de datos de Oracle de origen para que Datastream pueda extraer datos de ella.

Configurar la base de datos de Oracle de origen

Antes de poder usar Datastream para extraer datos de tu base de datos de Oracle de origen, debes configurar tu base de datos de las siguientes maneras:

  • Configura el registro de archivos para realizar un seguimiento de los cambios en tu base de datos, como las operaciones insert, update, delete y rename
  • Otorga los privilegios adecuados a la cuenta de usuario que se usará para conectarse a tu base de datos.
  • Define una política de retención de datos para tu base de datos a fin de determinar qué datos se archivarán, cuánto tiempo se conservarán, si los datos al final del período de retención se deben archivar o destruir, etcétera.

En las siguientes secciones, se explica cómo configurar cada uno de estos tipos de bases de datos de Oracle.

Por el momento, Datastream funciona con los siguientes tipos de bases de datos de Oracle:

Configura una base de datos de Amazon RDS para Oracle

  1. Verifica que tu base de datos se ejecute en modo ARCHIVELOG. Para hacerlo, ejecuta el comando siguiente:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Si el resultado es ARCHIVELOG, continúa con el paso c.

    2. Si el resultado es NOARCHIVELOG, deberás habilitar el modo ARCHIVELOG para la base de datos.

    3. Define una política de retención de datos para tu base de datos mediante la ejecución del siguiente comando:

      exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);
      

      Te recomendamos conservar las copias de seguridad y archivar los registros durante un mínimo de 4 días y se recomiendan 7 días.

    4. Configura la política de rotación de archivos de registro de Oracle. Recomendamos configurar un tamaño de archivo máximo de 512 MB.

  2. Habilita los datos de registro complementarios. Para hacerlo, primero habilita el registro complementario en la base de datos mediante la ejecución del siguiente comando:

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

    A continuación, elige si quieres activar el registro para tablas específicas o para toda la base de datos.

    A fin de registrar los cambios solo para tablas específicas, ejecuta el siguiente comando para cada tabla que desees replicar:

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

    Para replicar la mayoría de las tablas de la base de datos o todas ellas, considera activar el registro en toda la base de datos.

    En el mensaje de SQL, ejecuta el siguiente comando para habilitar los datos de registros complementarios en toda la base de datos:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. Otorga los privilegios adecuados a la cuenta de usuario que se usará para conectarse a tu base de datos. Para hacerlo, ejecuta los siguientes 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];
    

    Si tu base de datos de origen es Oracle 12c o posterior, otorga el siguiente privilegio adicional:

    GRANT LOGMINING TO [user];

Configurar una base de datos de Oracle autoalojada

  1. Verifica que tu base de datos se ejecute en modo ARCHIVELOG. Para hacerlo, ejecuta el comando siguiente:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Si el resultado es ARCHIVELOG, continúa con el paso 2.

    2. Si el resultado es NOARCHIVELOG, deberás habilitar el modo ARCHIVELOG para la base de datos.

    3. Ejecuta los siguientes comandos cuando accedas como SYSDBA:

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
      
  2. Define una política de retención de datos para tu base de datos mediante la ejecución de estos comandos de Oracle Recovery Manager (RMAN):

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

    Te recomendamos conservar las copias de seguridad y archivar los registros durante un mínimo de 4 días y se recomiendan 7 días.

  3. Regresa a la ventana de SQL de la herramienta de base de datos que usas para configurar la política de rotación de archivos de registro de Oracle. Recomendamos configurar un tamaño de archivo máximo de 512 MB.

  4. Habilita los datos de registro complementarios. Para hacerlo, primero habilita el registro complementario en la base de datos mediante la ejecución del siguiente comando:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    

    A continuación, elige si quieres activar el registro para tablas específicas o para toda la base de datos.

    A fin de registrar los cambios solo para tablas específicas, ejecuta el siguiente comando para cada tabla que desees replicar:

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

    Para replicar la mayoría de las tablas de la base de datos o todas ellas, considera activar el registro en toda la base de datos.

    Ejecuta el siguiente comando para habilitar los datos de registros complementarios en toda la base de datos:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. Otorga los privilegios adecuados a la cuenta de usuario que se usará para conectarse a tu base de datos. Para hacerlo, ejecuta los siguientes 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];
    

    Si tu base de datos de origen es Oracle 12c o posterior, otorga el siguiente privilegio adicional:

    GRANT LOGMINING TO [user];