Para transmitir actualizaciones de captura de datos modificados (CDC) desde una base de datos de Oracle conectable a
un destino compatible, como
BigQuery o Cloud Storage, puedes conectar tu base de datos a
Datastream. Cada base de datos conectable se ejecuta dentro de una
base de datos de contenedores (CDB) multiusuario. Para preparar tu fuente, configura el modo ARCHIVELOG y la retención de registros en la CDB, y el registro
complementario y los privilegios de usuario en ambos contenedores.
Configura tu base de datos de Oracle conectable para el lector de registros binarios
Para configurar tu base de datos de Oracle conectable y usarla con el método de CDC del lector de registros binarios, sigue estos pasos:
Selecciona uno de los siguientes métodos para acceder a tus archivos de registro:
Administración automática de almacenamiento (ASM): Si seleccionas esta opción, debes crear una conexión de ASM dedicada y proporcionar sus detalles cuando crees tu perfil de conexión. La cuenta de usuario que se usa para la conexión de ASM debe tener el privilegio
SYSASM.Para crear un usuario de ASM nuevo con el privilegio
SYSASM, ejecuta los siguientes comandos:CREATE USER ASM_USER_NAME IDENTIFIED BY ASM_PASSWORD; GRANT SYSASM TO ASM_USER_NAME;
Reemplaza lo siguiente:
- ASM_USER_NAME: Es el nombre del usuario de ASM.
- ASM_PASSWORD: Es la contraseña del usuario de ASM.
Directorios de bases de datos: Si seleccionas esta opción, debes crear objetos de directorio de bases de datos que apunten a los archivos de registro de rehacer y a los archivos de registro archivados, y otorgar acceso de
READa los directorios para tu usuario de la base de datos:
CREATE DIRECTORY DIRECTORY_NAME_1 as 'ONLINE_REDO_LOGS_PATH'; CREATE DIRECTORY DIRECTORY_NAME_2 as 'ARCHIVED_REDO_LOGS_PATH'; GRANT READ ON DIRECTORY DIRECTORY_NAME_1 to USER_NAME; GRANT READ ON DIRECTORY DIRECTORY_NAME_2 to USER_NAME;
Reemplaza lo siguiente:
- DIRECTORY_NAME_1: Es el nombre del directorio para los archivos de registro de rehacer en línea.
- DIRECTORY_NAME_2: Es el nombre del directorio de los archivos de registro de rehacer archivados.
- ONLINE_REDO_LOGS_PATH: Es la ruta de acceso al directorio en el que se almacenarán los archivos de registro de rehacer en línea.
- ARCHIVED_REDO_LOGS_PATH: Es la ruta de acceso al directorio en el que se almacenarán los archivos de registro archivados.
- USER_NAME: Es el nombre del usuario de la base de datos al que deseas otorgar
acceso a
READ.
Si seleccionas el método de lector de registros binarios y usas directorios de bases de datos, debes proporcionar los nombres de los directorios de registros de rehacer y de registros archivados cuando crees tu transmisión.
Verifica que tu base de datos se ejecute en modo
ARCHIVELOG.Para ello, accede a tu base de datos de Oracle y ejecuta el siguiente comando en el mensaje de SQL:
SELECT LOG_MODE FROM V$DATABASE;- Si el resultado es
ARCHIVELOG, continúa con el siguiente paso. - Si el resultado es
NOARCHIVELOG, deberás habilitar el modoARCHIVELOGpara tu base de datos. Ejecuta los siguientes comandos cuando accedas como
SYSDBA:SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
Los archivos de registro archivados consumen espacio en el disco, por lo que te recomendamos configurar el parámetro
DB_RECOVERY_FILE_DEST_SIZEpara tu base de datos. Usa este parámetro para especificar (en bytes) el límite estricto del espacio total que usarán los archivos de recuperación de la base de datos de destino. Si configuras este parámetro, puedes administrar el equilibrio entre proteger la base de datos para que no se quede sin espacio en el disco y que la transmisión falle debido a la pérdida de la posición del registro.
- Si el resultado es
Define una política de retención de datos para tu base de datos ejecutando estos comandos de Oracle Recovery Manager (RMAN):
TARGET / 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.
Regresa al mensaje 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. Te recomendamos que establezcas un tamaño máximo de archivo de registro de no más de 512 MB.
Habilita los datos de registros complementarios. Para ello, primero habilita el registro complementario mínimo a nivel de la base de datos ejecutando el siguiente comando:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Luego, elige si quieres activar el registro para tablas específicas o para toda la base de datos.
Para registrar los cambios solo en tablas específicas, ejecuta el siguiente comando en cada tabla que quieras replicar:
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Reemplaza lo siguiente:
- SCHEMA: Es el nombre del esquema que contiene la tabla.
- TABLE: Es el nombre de la tabla para la que deseas registrar los cambios.
Para replicar la mayoría o todas las tablas de tu base de datos, considera activar el registro para toda la base de datos. Ejecuta el siguiente comando para habilitar los datos de registros complementarios para toda la base de datos:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Otorga los privilegios adecuados a la cuenta de usuario que se usará para conectarse a tu base de datos conectable. Para hacerlo, ejecuta los siguientes comandos:
GRANT SELECT ON GV_$LOG TO USER_NAME; GRANT SELECT ON GV_$LOGFILE TO USER_NAME; GRANT SELECT ON GV_$ARCHIVED_LOG TO USER_NAME; GRANT SELECT ON GV_$INSTANCE TO USER_NAME; GRANT SELECT ON GV_$STANDBY_LOG TO USER_NAME; GRANT SELECT ON V_$INSTANCE TO USER_NAME; GRANT SELECT ON V_$PDBS TO USER_NAME; GRANT SELECT ON V_$TRANSPORTABLE_PLATFORM TO USER_NAME; GRANT SELECT ON V_$DATABASE TO USER_NAME; GRANT SELECT ON V_$PARAMETER TO USER_NAME; GRANT SELECT ON COL$ TO USER_NAME; GRANT SELECT ON DBA_OBJECTS TO USER_NAME; GRANT SELECT ON DBA_TABLESPACES TO USER_NAME; GRANT SELECT ON DBA_ENCRYPTED_COLUMNS TO USER_NAME; GRANT SELECT ON DBA_EXTENTS TO USER_NAME; GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME; GRANT CONNECT TO USER_NAME; GRANT CREATE SESSION TO USER_NAME; GRANT SELECT ANY TABLE TO USER_NAME; GRANT READ ON DIRECTORY ONLINELOG_DIR TO USER_NAME; GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO USER_NAME;
Reemplaza USER_NAME por el nombre de la cuenta de usuario que deseas usar para conectarte a tu base de datos.
Configura tu base de datos de Oracle conectable para LogMiner
Para configurar una base de datos conectable de Oracle alojada de forma autónoma de modo que puedas usarla con la API de LogMiner, sigue estos pasos:
Verifica que tu base de datos se ejecute en modo
ARCHIVELOG. Para ello, ejecuta el siguiente comando desde el contenedorCDB$ROOT:SELECT LOG_MODE FROM V$DATABASE;- Si el resultado es
ARCHIVELOG, continúa con el paso 2. - Si el resultado es
NOARCHIVELOG, deberás habilitar el modoARCHIVELOGpara tu base de datos. Ejecuta los siguientes comandos cuando accedas como
SYSDBA:SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;Los archivos de registro archivados consumen espacio en el disco, por lo que te recomendamos configurar el parámetro
DB_RECOVERY_FILE_DEST_SIZEpara tu base de datos. Usa este parámetro para especificar (en bytes) el límite estricto del espacio total que usarán los archivos de recuperación de la base de datos de destino. Si configuras este parámetro, puedes administrar el equilibrio entre proteger la base de datos para que no se quede sin espacio en el disco y que la transmisión falle debido a la pérdida de la posición del registro.
- Si el resultado es
Define una política de retención de datos para tu base de datos ejecutando el siguiente comando de Oracle Recovery Manager (RMAN) desde el contenedor
CDB$ROOT:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;El comando define la política de retención de datos para todas las bases de datos conectables de tu base de datos de contenedor.
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.
Regresa al mensaje 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. Te recomendamos que establezcas un tamaño máximo de archivo de registro de no más de 512 MB.
Habilita los datos de registros complementarios. Para ello, primero habilita el registro complementario en la base de datos a nivel del contenedor
CDB$ROOTejecutando el siguiente comando:ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;Luego, elige si deseas activar el registro para tablas específicas o para toda la base de datos conectable.
Para registrar los cambios solo en tablas específicas, conéctate al contenedor de la base de datos conectable y ejecuta el siguiente comando para cada tabla que quieras replicar:
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;Reemplaza lo siguiente:
- SCHEMA: Es el nombre del esquema que contiene la tabla.
- TABLE: Es el nombre de la tabla para la que deseas registrar los cambios.
Para replicar varias o todas las tablas de tu base de datos, considera activar el registro para toda la base de datos.
Ejecuta el siguiente comando para habilitar los datos de registros complementarios para toda la base de datos:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;Crea un usuario común. Un usuario común tiene la misma identidad en el contenedor
CDB$ROOTy en las bases de datos conectables. Un usuario común puede conectarse al contenedorCDB$ROOTy realizar operaciones en él, así como en cualquier base de datos conectable en la que tenga privilegios. El nombre de usuario común debe comenzar conC##oc##.Otorga los privilegios adecuados al usuario común que se usará para conectarse a tu base de datos. Se requieren diferentes permisos en los niveles de contenedor de
CDB$ROOTy base de datos conectable.- Conéctate al contenedor
CDB$ROOTy ejecuta 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éctate a la base de datos conectable y ejecuta los siguientes comandos:
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ANY TABLE TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON V_$PDBS TO USER_NAME; GRANT SELECT ON SYS.V_$LOG TO USER_NAME; -- for primary databases GRANT SELECT ON SYS.V_$STANDBY_LOG TO USER_NAME; -- for standby databases GRANT SELECT ON SYS.V_$LOGFILE 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 SYS.V_$PARAMETER TO USER_NAME;- Conéctate al contenedor
Otorga al usuario común
SELECTacceso a la vistaDBA_EXTENTSen tu base de datos. Este privilegio te permite usar el rellenado basado enROWIDpara tu fuente de Oracle:GRANT SELECT ON DBA_EXTENTS TO USER_NAME;
Si tu base de datos usa la encriptación de datos transparente (TDE), otorga los siguientes permisos:
GRANT SELECT ON DBA_TABLESPACES TO USER_NAME; GRANT SELECT ON DBA_ENCRYPTED_COLUMNS TO USER_NAME;
¿Qué sigue?
- Obtén más información sobre cómo funciona Datastream con las fuentes de Oracle.