Preparación de Valores de Conexión, Sistema y Parámetros de Base de Datos
Obtenga información sobre la configuración de la conexión de base de datos, el sistema y los valores de parámetros para Oracle GoldenGate for Oracle.
Activación del modo de replicación y archivo GoldenGate
Paso 1: Activar la replicación GoldenGate
Los servicios de base de datos necesarios para soportar Oracle GoldenGate Extract y Replicat deben estar activados explícitamente para Oracle AI Database.
Para activar la replicación de Oracle GoldenGate, defina el siguiente parámetro de inicialización de base de datos. Todas las instancias de Oracle RAC deben tener este valor definido en TRUE si utilizan Oracle GoldenGate en cualquiera de los nodos.
ALTER SYSTEM SET enable_goldengate_replication = true SCOPTE=both;
Para obtener más información sobre este parámetro, consulte Parámetros de inicialización.
Pasos 2: Activación del modo de archivado
Las bases de datos Oracle deben estar en modo ARCHIVELOG para que Extract pueda procesar los archivos log. Para activar el modo ARCHIVELOG, siga los pasos proporcionados en Cambio del Modo de Archivado de la Base de Datos.
Definición de Consulta de Flashback
Para obtener más información sobre los datos que recupera Oracle GoldenGate, consulte Detalles del soporte para tipos de dato y objetos de Oracle.
Por defecto, Oracle GoldenGate utiliza la consulta de flashback para recuperar los valores de los tablespaces de deshacer (rollback). De esta forma, Oracle GoldenGate puede reconstruir una imagen de fila de lectura consistente a partir de una hora específica o un SCN para que coincida con el registro de redo.
Para obtener los mejores resultados de recuperación, configure la base de datos origen de la siguiente forma:
-
Defina una cantidad suficiente de retención de redo definiendo los parámetros de inicialización de Oracle
UNDO_MANAGEMENTyUNDO_RETENTIONcomo se indica a continuación (en segundos).UNDO_MANAGEMENT=AUTO UNDO_RETENTION=86400 UNDO_RETENTION can be adjusted upward in high-volume environments. -
Calcule el espacio necesario en el tablespace de deshacer mediante la siguiente fórmula.
*undo_space* = UNDO_RETENTION * *UPS* + *overhead*Dónde:
-
undo_space es el número de bloques de deshacer.
-
UNDO_RETENTIONes el valor del parámetroUNDO_RETENTION(en segundos). -
UPS es el número de bloques de deshacer para cada segundo.
-
La sobrecarga es la sobrecarga mínima para los metadatos (tablas de transacciones, etc.).
Utilice la vista del sistema
V$UNDOSTATpara estimar UPS y gastos generales. -
-
Para las tablas que contienen
LOBs, realice una de las siguientes acciones:-
Defina la cláusula de almacenamiento
LOBenRETENTION. Este es el valor por defecto para las tablas que se crean cuandoUNDO_MANAGEMENTse define enAUTO. -
Si utiliza
PCTVERSIONen lugar deRETENTION, definaPCTVERSIONen un valor inicial de 25. Puede ajustarla según las estadísticas de recuperación que se informan con el comandoSTATS EXTRACT. Si el valor del campoSTAT_OPER_ROWFETCHCURRENTBYROWIDoSTAT_OPER_ROWFETCH_CURRENTBYKEYde estas estadísticas es alto, aumentePCTVERSIONen incrementos de 10 hasta que las estadísticas muestren valores bajos.
-
Oracle GoldenGate proporciona los siguientes parámetros para gestionar la recuperación.
| Parámetro o comando | Descripción |
|---|---|
Comando STATS EXTRACT con la opción REPORTFETCH |
Muestra las estadísticas de recuperación de extracción bajo demanda. |
Parámetro STATOPTIONS con la opción REPORTFETCH |
Define el comando STATS EXTRACT para que siempre muestre las estadísticas de recuperación. |
Parámetro MAXFETCHSTATEMENTS |
Controla el número de cursores abiertos para consultas preparadas que Extract mantiene en la base de datos de origen y también para operaciones SQLEXEC. |
Parámetro MAXFETCHSTATEMENTS |
Controla el comportamiento de recuperación por defecto de Extract: si Extract realiza una consulta de flashback o recupera la imagen actual de la tabla. |
Parámetro FETCHOPTIONS con la opción USELATESTVERSION o NOUSELATESTVERSION |
Maneja el fallo de una consulta de flashback de extracción, por ejemplo, si la retención de deshacer ha caducado o la estructura de una tabla ha cambiado. Extract puede recuperar la imagen actual de la tabla o ignorar el fallo. |
Parámetro REPFETCHEDCOLOPTIONS |
Controla la respuesta de Replicat cuando procesa registros de pista que incluyen datos recuperados o condiciones que faltan columnas. |
Manejo de Otras Propiedades de Base de Datos
Hay algunas propiedades de base de datos que pueden afectar a Oracle GoldenGate y los parámetros utilizados para resolver o solucionar determinadas condiciones.
En la siguiente tabla, se muestran las propiedades de la base de datos y la preocupación/resolución asociada.
| Propiedad de la Base de Datos | Preocupación/resolución |
|---|---|
| Tabla con partición a intervalos | Para soportar tablas con partición a intervalos, asegúrese de que el parámetro WILDCARDRESOLVE permanece en el valor por defecto DYNAMIC. |
| Tabla con columnas virtuales | Las columnas virtuales no se registran y Oracle no permite DML en las columnas virtuales. Sin embargo, puede capturar estos datos y asignarlos a una columna de destino que no sea una columna virtual haciendo lo siguiente: Incluya la tabla en la sentencia Extract En la sentencia Replicat |
| Tabla con vista inherentemente actualizable | Para replicar en una vista que se puede actualizar de forma inherente, defina una clave en las columnas únicas de la vista que se puede actualizar mediante una cláusula KEYCOLS en la misma sentencia MAP en la que se asignan las tablas de origen y destino asociadas. |
| Redo logs o archivos en diferentes ubicaciones | El parámetro TRANLOGOPTIONS contiene opciones para manejar entornos en los que los redo logs o archivos se almacenan en una ubicación diferente a la del valor por defecto de la base de datos o en una plataforma diferente a la que se está ejecutando Extract. |
Operaciones TRUNCATE |
Para replicar las operaciones
|
| Secuencias | Para replicar DDL para secuencias ( Para replicar solo los valores de secuencia, utilice el parámetro |
Configuración de una base de datos de contenedores multi-inquilino
Oracle GoldenGate con Oracle AI Database permite la implantación de bases de datos conectables (PDB) para el origen y el destino. Extract está registrado para una PDB específica, que se denomina extracción por PDB.
Nota: No se recomienda el acceso de nivel raíz con el usuario c##ggadmin, excepto en el caso de la configuración de Extract descendente. Utilice Extract en el nivel por PDB en lugar de Extract en el nivel raíz.
En el siguiente diagrama se muestra la configuración de diferentes enfoques en una configuración de base de datos de contenedor multi-inquilino:

Agregando Extract directamente desde las capturas de PDB a partir de PDB aisladas, gestionando la propiedad y la responsabilidad a nivel de PDB.
Mediante una extracción por PDB, puede conectarse como usuario de PDB local (por ejemplo, ggadmin) y, a continuación, registrar esta extracción con la base de datos. Como ya está conectado como usuario de PDB, no se necesita una cláusula container adicional. Del mismo modo, tampoco se necesita la convención de nomenclatura SOURCECATALOG o de tres partes.
Para configurar un Extract, consulte Adición de un Extract.
Consideraciones para la configuración de la base de datos de contenedores multi-inquilino
Tenga en cuenta las siguientes directrices al configurar bases de datos de contenedor multi-inquilino para la replicación de datos mediante Oracle GoldenGate:
-
Las diferentes bases de datos de conexión de la base de datos de contenedor multi-inquilino pueden tener diferentes juegos de caracteres. Oracle GoldenGate captura los datos de cualquier base de datos multi-inquilino con diferentes juegos de caracteres en un archivo de pista y replica los datos sin corrupción debido al uso de diferentes juegos de caracteres.
-
Para crear y registrar una extracción por PDB, deberá conectarse al usuario de PDB, como
ggadmin, creado para el acceso a nivel de PDB. Utilice el parámetroUSERIDALIASpara configurar una cadena de conexión SQLNet, comoggadmin@pdbeast. *No necesita la cláusula container oSOURCECATALOGpara configurar la extracción por PDB. -
Si el nombre de usuario de PDB, el nombre de usuario de CDB o GLOBAL_NAME contiene un guión, Oracle GoldenGate devuelve el siguiente error:
ERROR OGG-08221 Cannot register or unregister EXTRACT <extract_name> because of the following SQL error: OCI Error ORA (status = 44004-ORA-44004: invalid qualified SQL name -
Para soportar la CDB 12.2 de origen, Extract debe especificar el formato de pista como versión 12.3. Debido a los cambios en los redo logs, para capturar desde una base de datos multi-inquilino que es Oracle 12.2 o superior, la versión de formato de pista debe ser 12.3 o superior.
-
La replicación de DDL funciona como una replicación normal para bases de datos multi-inquilino.
Consulte Agregar conexiones de base de datos para agregar un usuario de base de datos de contenedor multi-inquilino en las credenciales de Oracle GoldenGate. Consulte Grant User Privileges for Oracle Database 21c and Lower o Grant User Privileges for Oracle AI Database 26ai and Higher en función de la instalación de Oracle AI Database que deba configurar.
Secuencia de vaciado para base de datos de contenedores multiinquilino
Solo puede utilizar el comando FLUSH SEQUENCE en Oracle GoldenGate si el script sequence.sql aplica los procedimientos de base de datos al esquema de administrador GoldenGate de la base de datos.
Utilice el comando FLUSH SEQUENCE justo después de iniciar Extract por primera vez durante la sincronización inicial o una nueva sincronización. Con este comando se actualiza una secuencia de Oracle para que los registros del redo inicial estén disponibles en el momento que Extract comience a capturar datos del proceso. Normalmente, redo no se genera hasta que se agota la caché actual. El vaciado ofrece a Replicat un punto de partida inicial con el que sincronizar el valor de secuencia correcto en el sistema de destino. A partir de entonces, Extract puede usar el redo asociado a la reserva de caché habitual de valores de secuencia. 1. FLUSH SEQUENCE utiliza los siguientes procedimientos de Oracle:
| Database | Procedure | User and Privileges |
| --- | --- | --- |
| Source | `updateSequence` | Grants `EXECUTE` to the owner of the Oracle GoldenGate DDL objects, or other selected user if not using DDL support. |
| Target | `replicateSequence` | Grants `EXECUTE` to the Oracle GoldenGate Replicat user. |
{: summary="This table lists the Oracle procedures used by FLUSH SEQUENCE. It gives the database, procedure, and user and privileges." }
The `sequence.sql` script installs these procedures. Normally, this script is run as part of the Oracle GoldenGate installation process, but make certain that was done before using `FLUSH SEQUENCE`. If `sequence.sql` was not run, the flush fails and an error message similar to the following is generated:
<pre class="copy"><code>Cannot flush sequence {0}. Refer to the Oracle GoldenGate for Oracle documentation for instructions on how to set up and run the sequence.sql script. Error {1}.</code></pre>
- Antes de utilizar
FLUSH SEQUENCE, conéctese a la base de datos mediante el comandoDBLOGIN.
FLUSH SEQUENCE se debe emitir en el nivel de PDB para crear un usuario de Oracle GoldenGate en cada PDB para la que se necesita la replicación de secuencia. Utilice DBLOGIN para conectarse a esa PDB y ejecute el comando FLUSH SEQUENCE.
Se recomienda utilizar el mismo esquema en cada PDB para que funcione con el archivo de parámetros GGSCHEMA GLOBALS.
En el siguiente ejemplo, la configuración del entorno es para Oracle 21c a la replicación 21c de Oracle, con Extract integrado y Replicat paralelo mediante Oracle GoldenGate 21c (21.3.0).
En la siguiente tabla se muestran los nombres de la CDB de origen y destino, las PDB y sus correspondientes credenciales de usuario para conectarse a la base de datos.
| CDB de origen | CDB de Destino |
|---|---|
NORTH |
SOUTH |
Nombre de PDB: DBEAST |
Nombre de PDB: DBWEST |
Usuario común: Usuario de PDB para secuencias: |
Usuario de PDB: ggadmin |
sqlplus system/manager
ALTER SESSION SESSION SET CONTAINER=CERTMISSN;
CREATE USER ggate IDENTIFIED BY *password* DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS CONTAINER=CURRENT;
Ejecutar @sequence.sql
sqlplus system/manager
ALTER SESSION SET CONTAINER=DBEAST;
@sequence.sql
Cuando se le solicite, introduzca lo siguiente:
GGADMIN
Ejecute el comando FLUSH SEQUENCE:
DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
FLUSH SEQUENCE DBEAST.HR.*
Configuración de Oracle GoldenGate de destino:
sqlplus system/manager
ALTER SESSION SET CONTAINER =PDBWEST;
@sequence.sql
Cuando se le solicite, introduzca el nombre de usuario de PDB ggadmin.
Esto también se aplica al script @sequence.sql, que también debe ejecutar en cada PDB desde la que se va a capturar.