Configure su base de datos Oracle de origen

El servicio de migración de bases de datos aprovecha la API de Oracle LogMiner, que forma parte de Oracle Database, para consultar archivos de registro de rehacer archivados. Los archivos de registro de rehacer contienen información sobre el historial de actividad en una base de datos. Para obtener más información sobre cómo funciona el Servicio de migración de bases de datos con estos archivos de registro, consulte Acerca del flujo de datos para las migraciones de Oracle .

Configure su base de datos Oracle de origen

Antes de poder utilizar el Servicio de migración de bases de datos para extraer datos de su base de datos Oracle de origen, debe configurar su base de datos de la siguiente manera:

  • Configurar el registro de archivos para realizar un seguimiento de los cambios en su base de datos, como las operaciones INSERT , UPDATE , DELETE y RENAME .

  • Otorgar los privilegios apropiados a la cuenta de usuario que se utilizará para conectarse a su base de datos y acceder a objetos de esquema y código.

    De forma predeterminada, el Servicio de migración de bases de datos intenta acceder a todas las definiciones de objetos a través de DBA_VIEWS . El acceso a DBA_VIEWS se otorga con el privilegio SELECT ANY DICTIONARY . Si las vistas de DBA no son accesibles para la cuenta de usuario de migración, el Servicio de migración de bases de datos recurre a ALL_VIEWS . Este enfoque le proporciona el mayor grado de flexibilidad con respecto a la definición del modelo de seguridad que mejor se adapte a sus requisitos.

    Si desea que el Servicio de migración de bases de datos solo acceda a un determinado subconjunto de sus definiciones de objetos, otorgue al usuario de migración una función con una configuración de privilegios más detallada en lugar de SELECT ANY DICTIONARY .

  • Definir una política de retención de datos para su base de datos para determinar qué datos se archivarán, cuánto tiempo se conservarán y si los datos al final del período de retención se archivan o destruyen.

El servicio de migración de bases de datos funciona con los siguientes tipos de bases de datos Oracle:

Configurar una base de datos de Amazon RDS para Oracle

  1. Verifique que su base de datos se esté ejecutando en modo ARCHIVELOG . Para hacerlo, ejecute el siguiente comando:

    SELECT LOG_MODE FROM V$DATABASE;

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

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

    3. Los archivos de registro archivados consumen espacio en disco; le recomendamos que configure el parámetro DB_RECOVERY_FILE_DEST_SIZE para su base de datos. Utilice este parámetro para especificar (en bytes) el límite estricto del espacio total que utilizarán los archivos de recuperación de la base de datos de destino. Al configurar este parámetro, puede gestionar el equilibrio entre disponibilidad de información y espacio en disco.

    4. Defina una política de retención de datos para su base de datos ejecutando este comando:

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

      Le recomendamos que conserve las copias de seguridad y archive los registros durante un mínimo de 4 días (se recomiendan 7 días).

    5. Configure la política de rotación de archivos de registro de Oracle. Recomendamos establecer un tamaño máximo de archivo de registro de no más de 512 MB. Para obtener más información sobre cómo administrar la rotación de registros, consulte Trabajar con archivos de registro de bases de datos de Oracle .

  2. Habilite los datos de registro complementarios . Para hacerlo, primero habilite el registro suplementario en la base de datos ejecutando el siguiente comando:

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

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

    Para registrar cambios solo para tablas específicas, ejecute el siguiente comando para cada tabla que desee replicar:

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

    Reemplace lo siguiente:

    • SCHEMA : el nombre del esquema que contiene la tabla.
    • TABLE : el nombre de la tabla para la que desea registrar cambios.

    Para replicar la mayoría o todas las tablas de su base de datos, considere activar el inicio de sesión para toda la base de datos.

    En el símbolo del sistema SQL, ejecute el siguiente comando para habilitar datos de registro complementarios para toda la base de datos:

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. Otorgue los privilegios apropiados a la cuenta de usuario que se utilizará para conectarse a su base de datos. Para hacerlo, ejecute los siguientes comandos:

    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;
    GRANT SELECT ANY DICTIONARY TO USER_NAME;
    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

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

    GRANT LOGMINING TO USER_NAME;

Configurar una base de datos Oracle autohospedada

  1. Verifique que su base de datos se esté ejecutando en modo ARCHIVELOG . Para hacerlo, ejecute el siguiente comando:

    SELECT LOG_MODE FROM V$DATABASE;

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

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

    3. Ejecute los siguientes comandos cuando inicie sesión como SYSDBA :

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
    4. Los archivos de registro archivados consumen espacio en disco; le recomendamos que configure el parámetro DB_RECOVERY_FILE_DEST_SIZE para su base de datos. Utilice este parámetro para especificar (en bytes) el límite estricto del espacio total que utilizarán los archivos de recuperación de la base de datos de destino. Al configurar este parámetro, puede gestionar el equilibrio entre disponibilidad de información y espacio en disco.

  2. Defina una política de retención de datos para su base de datos ejecutando el siguiente comando de Oracle Recovery Manager (RMAN):

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;

    Le recomendamos que conserve las copias de seguridad y archive los registros durante un mínimo de 4 días (se recomiendan 7 días).

  3. Regrese al indicador SQL de la herramienta de base de datos que está utilizando para configurar la política de rotación de archivos de registro de Oracle. Recomendamos establecer un tamaño máximo de archivo de registro de no más de 512 MB.

  4. Habilite los datos de registro complementarios . Para hacerlo, primero habilite el registro suplementario en la base de datos ejecutando el siguiente comando:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

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

    Para registrar cambios solo para tablas específicas, ejecute el siguiente comando para cada tabla que desee replicar:

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

    Reemplace lo siguiente:

    • SCHEMA : el nombre del esquema que contiene la tabla.
    • TABLE : el nombre de la tabla para la que desea registrar cambios.

    Para replicar la mayoría o todas las tablas de su base de datos, considere activar el inicio de sesión para toda la base de datos.

    Ejecute el siguiente comando para habilitar datos de registro complementarios para toda la base de datos:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. Otorgue los privilegios apropiados a la cuenta de usuario que se utilizará para conectarse a su base de datos. Para hacerlo, ejecute los siguientes comandos:

    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME;
    GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    GRANT SELECT ANY DICTIONARY TO USER_NAME;
    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

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

    GRANT LOGMINING TO USER_NAME;

Configurar una base de datos conectable de Oracle autohospedada

El servicio de migración de bases de datos admite la arquitectura multiinquilino de Oracle, donde una base de datos de contenedor único (CDB) contiene una o más bases de datos conectables (PDB). Cada base de datos conectable es una base de datos autónoma con un ID y un nombre únicos y se puede administrar de forma independiente.

Para configurar una base de datos conectable de Oracle autohospedada para poder usarla con el Servicio de migración de bases de datos, realice los siguientes pasos:

  1. Verifique que su base de datos se esté ejecutando en modo ARCHIVELOG . Para hacerlo, ejecute el siguiente comando desde el contenedor CDB$ROOT :

    SELECT LOG_MODE FROM V$DATABASE;

    1. Si el resultado es ARCHIVELOG , luego pase al paso 2.

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

    3. Ejecute los siguientes comandos cuando se registre como SYSDBA :

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
    4. Archivos de registro archivados Consumen espacio en disco, le recomendamos que configure el parámetro DB_RECOVERY_FILE_DEST_SIZE para su base de datos. Use este parámetro para especificar (en bytes) el límite duro en el espacio total que debe utilizar los archivos de recuperación de la base de datos de destino. Al establecer este parámetro, puede administrar la compensación entre la disponibilidad de información y el espacio en el disco.

  2. Defina una política de retención de datos para su base de datos ejecutando el siguiente comando Oracle Recovery Manager (RMAN) desde el contenedor CDB$ROOT :

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;

    Recomendamos que retenga las copias de seguridad y los registros de archivo durante un mínimo de 4 días, y se recomiendan 7 días.

  3. Vuelva a la solicitud de SQL de la herramienta de base de datos que está utilizando para configurar la Política de rotación del archivo de registro de Oracle. Recomendamos establecer un tamaño de archivo de registro máximo de no más de 512 MB.

  4. Habilitar datos de registro suplementarios . Para hacerlo, primero habilite el registro suplementario en la base de datos en el nivel CDB$ROOT ejecutando el siguiente comando:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

    A continuación, elija si enciende el registro de tablas específicas o toda la base de datos conectable.

    Para registrar los cambios solo para tablas específicas, conéctese al contenedor de base de datos conectable y ejecute el siguiente comando para cada tabla que desea replicar:

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

    Reemplace lo siguiente:

    • SCHEMA : el nombre del esquema que contiene la tabla.
    • TABLE : el nombre de la tabla para la que desea registrar los cambios.

    Para replicar la mayoría o todas las tablas en su base de datos, considere activar la sesión para toda la base de datos.

    Ejecute el siguiente comando para habilitar datos de registro suplementario para toda la base de datos:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. Crear un usuario común . Un usuario común tiene la misma identidad en el contenedor CDB$ROOT y en las bases de datos conectables. Un usuario común puede conectarse y realizar operaciones dentro de la raíz, y dentro de cualquier base de datos conectable en la que tenga privilegios. El nombre de usuario común debe comenzar con C## o c## .

  6. Otorgue los privilegios apropiados al usuario común que se utilizará para conectarse a su base de datos. Se requieren diferentes permisos en el contenedor CDB$ROOT y los niveles de base de datos conectables.

    • Conéctese al contenedor CDB$ROOT y ejecute los siguientes comandos:

      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
      GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME;
      GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
      GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
      GRANT LOGMINING TO USER_NAME;
      GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    • Conéctese a la base de datos conectable y ejecute los siguientes comandos:

      GRANT CREATE SESSION TO USER_NAME;
      GRANT SET CONTAINER TO USER_NAME;
      GRANT SELECT ANY TABLE TO USER_NAME;
      GRANT SELECT ANY DICTIONARY TO USER_NAME;
      GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
      GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
      GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;
      GRANT SELECT ON DBA_EXTENTS TO USER_NAME;