Instanciación precisa para Oracle mediante el extracto de carga inicial
Obtenga información sobre cómo agregar el Extract de carga inicial mediante el cliente de administración.
El método de carga inicial es muy adecuado para la instanciación en los siguientes escenarios:
-
Cargando base de datos destino con un pequeño juego de tablas del subjuego de la base de datos origen.
-
Carga de datos en un entorno heterogéneo
El Extract de carga inicial funciona leyendo datos directamente de las tablas de origen y escribiéndolos en EXTFILE. Se conecta directamente a la base de datos y recupera los cambios. Como se muestra en el siguiente diagrama, hay dos fases al realizar una instanciación de carga inicial. El Extract EXTINIT es el Extract de carga inicial y el EXTPRM es el Extract principal. El proceso EXTPRM está configurado pero no iniciado para la replicación continua. Una vez que la extracción de carga inicial finaliza la instanciación, el proceso de replicación continua se inicia desde el momento en que se inició la carga inicial.

Para configurar esta extracción, necesitará una combinación de procesos de carga inicial basada en archivos y captura de datos de cambio (CDC). El proceso de instanciación que utiliza la extracción de carga inicial incluye las siguientes tareas:
-
Agregar y configurar un Extract de carga inicial: este Extract se utiliza para copiar el contenido existente de una o más tablas del origen a la base de datos de destino.
-
Configurar Captura de Datos de Cambio: se utiliza para copiar los cambios transaccionales del origen a la base de datos destino. Nota: la arquitectura de microservicios no soporta la carga de datos con una carga directa de Oracle GoldenGate.
El proceso de carga inicial basado en archivos es el método preferido para realizar la replicación de datos en MA. Los componentes principales son:
-
Extracción y replicación de carga inicial: replica el contenido existente de las tablas de la base de datos.
-
Extracción y Replicación Primaria: Replica los datos de cambio de las tablas de la base de datos.
-
Rutas de distribución: transfiere los archivos de pista al sistema de destino.
Antes de empezar, asegúrese de que se ha creado el alias de credencial de base de datos (USERIDALIAS).
Puede utilizar los comandos de interfaz web, cliente de administración o cURL de Oracle GoldenGate para configurar esta configuración.
Paso 1: Crear un extracto principal
La instanciación precisa se utiliza para replicar correctamente los recursos de la base de datos de origen a la base de datos de destino. La extracción principal se inicia primero para iniciar la captura temprana de datos de cambio. La instanciación precisa se basa en las siguientes suposiciones:
Nota: Para que funcione la instanciación precisa, el SCN de instanciación debe ser posterior al SCN de registro.
-
Se inicia el Extract principal. Es responsable de la captura de datos de cambios y señala que es el SCN de registro.
-
La base de datos se supervisa. La base de datos espera a que el SCN de la transacción abierta más antigua venga después del SCN de registro. Éste es el SCN de instanciación.
-
El SCN de instanciación se utiliza al crear los procesos de extracción y replicación de carga inicial.
-
El SCN de instanciación se utiliza para crear el Replicat principal, una vez que se completa la replicación de carga inicial.
-
Para MySQL, la instanciación precisa solo se aplica a las bases de datos de origen y destino MySQL y se implanta mediante la utilidad
Dumpdel shell MySQL. Para obtener más información sobre la utilidadDump, consulte MySQL Dump Utility.
Para empezar, cree e inicie el Extract primario EXTPRIM desde AdminClient, como se muestra en el siguiente ejemplo:
Comando:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Salida:
Using default deployment 'OGGDEP'
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Salida:
Successfully logged into database.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 3> ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
Salida:
2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Salida:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS extprim
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS extprim
Salida:
--
-- E X T P R I M . p r m
-- Primary Extract Parameter File
--
Extract EXTPRIM
UseridAlias oggadmin
ExtTrail AA
Table user01.*;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> ADD EXTTRAIL aa EXTRACT extprim
Salida:
2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 8> START EXTRACT extprim
Salida:
2018-03-16T13:38:02Z INFO OGG-00975 EXTRACT EXTPRIM starting
2018-03-16T13:38:02Z INFO OGG-15426 EXTRACT EXTPRIM started
En este ejemplo, oggadmin es el alias de credencial de base de datos.
Después de crear el Extract principal, recupere el número de registro del SCN. Ejecute el comando REGISTER EXTRACT en AdminClient. En el siguiente ejemplo, se recupera un valor SCN de 1608891.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE
Salida:
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
Paso 2: Determinación del SCN de Instanciación
El servicio de administración de la arquitectura de microservicios de Oracle GoldenGate proporciona un punto final para recuperar información sobre transacciones de base de datos abiertas. Esta información se puede utilizar para identificar el SCN que se va a utilizar al crear una instancia de Extract de carga inicial.
En el siguiente ejemplo, el SCN de instanciación es 1609723, que es el SCN más antiguo de todas las transacciones abiertas que también ha superado el SCN de registro de 1608891, identificado en el paso anterior.
-- Query for active transactions
--
SELECT T.START_SCN, T.STATUS TSTATUS, T.START_DATE,
S.SID, S.SERIAL#, S.INST_ID, S.USERNAME, S.OSUSER, S.STATUS SSTATUS, S.LOGON_TIME
FROM gv$transaction T
INNER JOIN gv$session S
ON s.saddr = t.ses_addr
UNION ALL
--
-- Query for current status
--
SELECT CURRENT_SCN, 'CURRENT', CURRENT_DATE,
NULL, NULL, NULL, 'SYS', NULL, NULL, NULL
from v$database
ORDER BY 1;
Los resultados de esta consulta se pueden utilizar para determinar el SCN de instanciación. Los resultados de esta consulta específica son:
1538916 ACTIVE 2018-03-16 18:10:31.0 3865 9176 1 OGGADMIN oracle INACTIVE 2018-03-16 18:10:26.0 1540555 CURRENT 2018-03-16 18:21:50.0 SYS
El SCN utilizado para instanciar la extracción de carga inicial se obtiene mediante SQL*Plus. En el siguiente ejemplo, la consulta SQL utiliza el valor de SCN de instanciación como 1624963, que es el SCN más antiguo de todas las transacciones abiertas que también han pasado el SCN de registro de 1608891.
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 14> SHELL ECHO 'SELECT MIN(START_SCN) FROM gv$transaction;' | ${ORACLE_HOME}/bin/sqlplus -S / as sysdba
MIN(START_SCN)
--------------
1624963
Si no hay transacciones abiertas, esta consulta SQL devuelve un resultado vacío. Una consulta detallada que tiene en cuenta la situación en la que no hay transacciones abiertas es:
SELECT MIN(SCN) as INSTANTIATION_SCN
FROM (SELECT MIN(START_SCN) as SCN
FROM gv$transaction
UNION ALL
SELECT CURRENT_SCN
FROM gv$database);
Paso 3: Crear e iniciar el Replicat de carga inicial
Antes de comenzar este paso, asegúrese de que la tabla de puntos de control oggadmin.checkpoints ya existe en el sistema de destino. El Replicat de carga inicial es responsable de rellenar la base de datos de destino. Ejecute el siguiente comando en AdminClient para crear e iniciar el Replicat de carga inicial (REPINIT):
Comando:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
Salida:
Using default deployment 'OGGDEP'
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
Salida:
Successfully logged into database.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 3> ADD CHECKPOINTTABLE oggadmin.checkpoints
Salida:
ADD "oggadmin.checkpoints" succeeded.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> ADD REPLICAT repinit EXTTRAIL dd CHECKPOINTTABLE oggadmin.checkpoints
Salida:
2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS repinit
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS repinit
Salida:
--
-- R E P I N I T . p r m
-- File-Based Initial Load Replicat Parameter File
--
Replicat REPINIT
UseridAlias oggadmin
Map user01.*
Target user01.*;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> START REPLICAT repinit
Salida:
2018-03-16T13:58:21Z INFO OGG-00975 REPLICAT REPINIT starting
2018-03-16T13:58:21Z INFO OGG-15426 REPLICAT REPINIT started
Paso 4: Crear e iniciar el Extract de carga inicial
Mediante el SCN de instanciación que ha recuperado (1624963), la extracción de carga inicial se crea para escribir el contenido de las tablas de la base de datos en la pista. Cree e inicie el Extract de carga inicial, EXTINIT.
A partir de Oracle GoldenGate 26ai, las vistas de la tabla Extract de carga inicial no se resolverán al resolver tablas con un parámetro TABLE que incluya comodines. Si las vistas se deben incluir en el Extract de carga inicial, se deben especificar en un parámetro TABLE independiente sin comodines.
Por ejemplo, si hay una tabla hr.employees y una vista hr.employees_view. Para Extract de carga inicial, si especifica lo siguiente en el archivo de parámetros Extract de carga inicial:
TABLE hr.*;
Solo los datos de la tabla hr.employees se incluirán en la extracción de carga inicial.
Si necesita incluir hr.employees_view en la carga inicial, agregue el siguiente parámetro al archivo de parámetros Extract de carga inicial:
TABLE SCOTT.TAB1_VIEW;
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 15> ADD EXTRACT extinit SOURCEISTABLE
Salida:
2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 16> EDIT PARAMS extinit
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 17> VIEW PARAMS extinit
Salida:
--
-- E X T I N I T . p r m
-- File-Based Initial Load Extract Parameter File
--
Extract EXTINIT
UseridAlias oggadmin
ExtFile CC Megabytes 2000 Purge
Table user01.*, SQLPredicate "As Of SCN 1624963";
Comando:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 18> START EXTRACT extinit
Salida:
2018-03-16T14:13:42Z INFO OGG-00975 EXTRACT EXTINIT starting
2018-03-16T14:13:42Z INFO OGG-15426 EXTRACT EXTINIT started
Paso 5: Crear las rutas de distribución
Cree dos rutas de distribución (AABB y CCDD) para copiar las pistas locales en el host remoto desde el cliente de administración:
Comando:
OGG (https://oggdep.example.com:9100 oggdep) 15> ADD DISTPATH aabb SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=AA target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=BB
Salida:
2018-03-16T17:28:27Z INFO OGG-08511 The path 'AABB' has been added.
Comando:
OGG (https://oggdep.oggdevops.us:9100 oggdep) 16> ADD DISTPATH ccdd SOURCE TRAIL://oggdep.example.com:9102/services/v2/sources?trail=CC target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=DD
Salida:
2018-03-16T17:28:35Z INFO OGG-08511 The path 'CCDD' has been added.
Comando:
OGG (https://oggdep.example:9100 oggdep) 17> START DISTPATH aabb
Salida:
2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started.
Comando:
OGG (https://oggdep.example.com:9100 oggdep) 18> START DISTPATH ccdd
Salida:
2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.
Si utiliza el protocolo ogg en lugar de wss, debe utilizar la opción TARGETTYPE. La sintaxis en ese caso sería:
ADD DISTPATH path-name SOURCE source-uri TARGET target-uri [ TARGETTYPE ( MANAGER | COLLECTOR | RECVSRVR ) ]
TARGETTYPE especifica el tipo de destino en caso de que la ruta de distribución use el protocolo heredado. Este argumento solo es válido si el esquema del URI de destino es ogg.
Paso 6: Crear el Replicat Principal
Una vez finalizada la carga inicial, Extract y Replicat, se pueden suprimir. A continuación, el proceso Replicat principal se crea en el host remoto para aplicar los datos de cambio a la base de datos de destino.
Utilice AdminClient para crear el proceso de Replicat principal. Nota: El Replicat principal se inicia en el SCN de instanciación.
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 12> ADD REPLICAT repprim EXTTRAIL bb CHECKPOINTTABLE oggadmin.checkpoints
Salida:
2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.
Comando: EDIT PARAMS
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 13> EDIT PARAMS repprim
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 14> VIEW PARAMS repprim
Salida:
--
-- R E P P R I M . p r m
-- Replicat Parameter File
--
Replicat REPPRIM
USERIDALIAS oggadmin
Map user01.*
Target user01.*;
Comando:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 15> START REPLICAT repprim ATCSN 1624963
Salida:
2018-03-16T17:38:10Z INFO OGG-00975 REPLICAT REPPRIM starting
2018-03-16T17:38:10Z INFO OGG-15426 REPLICAT REPPRIM started