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:

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.

A continuación se muestra la descripción de gwuad_dt_026_file-replicat.png

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:

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:

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.

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