Instanciation précise pour Oracle à l'aide de l'extraction de chargement initial

Découvrez comment ajouter l'extraction de chargement initial à l'aide du client d'administration.

La méthode de chargement initial est particulièrement adaptée à l'instanciation dans les scénarios suivants :

Le processus Extract de chargement initial fonctionne en lisant les données directement à partir des tables source et en les écrivant dans une table EXTFILE. Il se connecte directement à la base de données et extrait les modifications. Comme le montre le schéma suivant, il existe deux phases lors d'une instanciation de charge initiale. L'extraction EXTINIT est l'extraction de chargement initial et l'extraction EXTPRM est l'extraction principale. Le processus EXTPRM est configuré mais n'est pas démarré pour la réplication continue. Une fois l'instanciation de la charge initiale terminée, le processus de réplication continue démarre à partir du moment où la charge initiale a été lancée.

Description de l'article gwuad_dt_026_file-replicat.png

Pour configurer cette extraction, vous aurez besoin d'une combinaison de processus de chargement initial et de capture des données de modification (CDC) basés sur des fichiers. Le processus d'instanciation utilisant le processus Extract de chargement initial comprend les tâches suivantes :

Le processus de chargement initial basé sur des fichiers est la méthode préférée pour effectuer la réplication de données dans MA. Ses principaux composants sont les suivants :

Avant de commencer, assurez-vous que l'alias d'informations d'identification de base de données (USERIDALIAS) est créé.

Vous pouvez utiliser l'interface Web d'Oracle GoldenGate, le client d'administration ou les commandes cURL pour configurer cette configuration.

Etape 1 : création d'une extraction principale

Une instanciation précise permet de répliquer correctement les ressources de base de données de la base source vers la base cible. L'extraction principale démarre d'abord pour lancer la capture anticipée des données de modification. L'instanciation précise repose sur les hypothèses suivantes :

Remarque : pour que l'instanciation précise fonctionne, le SCN d'instanciation doit apparaître après le SCN d'inscription.

Pour commencer, créez et démarrez l'extraction principale EXTPRIM à partir de AdminClient, comme indiqué dans l'exemple suivant :

Commande :

OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !

Sortie :

Using default deployment 'OGGDEP'

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin

Sortie :

Successfully logged into database.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP) 3> ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW

Sortie :

2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE

Sortie :

2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS extprim

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS extprim

Sortie :

--
-- E X T P R I M . p r m
-- Primary Extract Parameter File
--
Extract EXTPRIM
UseridAlias oggadmin
ExtTrail AA
Table user01.*;

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> ADD EXTTRAIL aa EXTRACT extprim

Sortie :

2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 8> START EXTRACT extprim

Sortie :

2018-03-16T13:38:02Z INFO OGG-00975 EXTRACT EXTPRIM starting
2018-03-16T13:38:02Z INFO OGG-15426 EXTRACT EXTPRIM started

Dans cet exemple, oggadmin est l'alias d'informations d'identification de base de données.

Après avoir créé l'extraction principale, extrayez le numéro d'enregistrement SCN. Exécutez la commande REGISTER EXTRACT dans AdminClient. L'exemple suivant extrait une valeur SCN de 1608891.

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> REGISTER EXTRACT extprim DATABASE

Sortie :

2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.

Etape 2 : détermination du SCN d'instanciation

Le service d'administration de l'architecture de microservices Oracle GoldenGate fournit une adresse permettant d'extraire des informations sur les transactions de base de données ouvertes. Ces informations peuvent être utilisées pour identifier le SCN à utiliser lors de l'instanciation du processus Extract de chargement initial.

Dans l'exemple suivant, le SCN d'instanciation est 1609723, qui est le SCN le plus ancien de toutes les transactions en cours qui dépasse également le SCN d'enregistrement de 1608891, identifié à l'étape précédente.

-- 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;

Les résultats de cette requête peuvent être utilisés pour déterminer le SCN d'instanciation. Les résultats de cette requête spécifique sont les suivants :

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

Le numéro SCN utilisé pour instancier le processus Extract de chargement initial est obtenu à l'aide de SQL*Plus. Dans l'exemple suivant, la requête SQL utilise la valeur de SCN d'instanciation en tant que 1624963, qui est le SCN le plus ancien de toutes les transactions ouvertes qui dépassent également le SCN d'inscription 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 aucune transaction n'est ouverte, cette requête SQL renvoie un résultat vide. Une requête détaillée qui prend en compte la situation où il n'y a pas de transactions en cours est :

SELECT MIN(SCN) as INSTANTIATION_SCN
  FROM (SELECT MIN(START_SCN) as SCN
          FROM gv$transaction
         UNION ALL
        SELECT CURRENT_SCN
          FROM gv$database);

Etape 3 : Créer et démarrer le processus de réplication de chargement initial

Avant de commencer cette étape, assurez-vous que la table de points de reprise oggadmin.checkpoints existe déjà sur le système cible. Le processus Replicat de chargement initial est chargé d'alimenter la base de données cible. Exécutez la commande suivante sur AdminClient pour créer et démarrer le processus Replicat de chargement initial (REPINIT) :

Commande :

OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !

Sortie :

Using default deployment 'OGGDEP'

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin

Sortie :

Successfully logged into database.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 3> ADD CHECKPOINTTABLE oggadmin.checkpoints

Sortie :

ADD "oggadmin.checkpoints" succeeded.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> ADD REPLICAT repinit EXTTRAIL dd CHECKPOINTTABLE oggadmin.checkpoints

Sortie :

2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS repinit

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 6> VIEW PARAMS repinit

Sortie :

--
--  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.*;

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 7> START REPLICAT repinit

Sortie :

2018-03-16T13:58:21Z  INFO    OGG-00975  REPLICAT REPINIT starting
2018-03-16T13:58:21Z  INFO    OGG-15426  REPLICAT REPINIT started

Etape 4 : création et démarrage de l'extraction de chargement initial

A l'aide du SCN d'instanciation que vous avez extrait (1624963), le processus Extract de chargement initial est créé pour écrire le contenu des tables de base de données dans la trace. Créez et démarrez le processus Extract de chargement initial, EXTINIT.

A partir d'Oracle GoldenGate 26ai, pour le chargement initial, les vues de table d'extraction ne seront pas résolues lors de la résolution de tables avec un paramètre TABLE qui inclut des caractères génériques. Si les vues doivent être incluses dans le processus Extract de chargement initial, elles doivent être indiquées dans un paramètre TABLE distinct sans caractères génériques.

Par exemple, s'il existe une table hr.employees et une vue hr.employees_view. Pour le chargement initial de l'extraction, si vous indiquez les éléments suivants dans le fichier de paramètres du chargement initial de l'extraction :

TABLE hr.*;

Seules les données de la table hr.employees seront incluses dans le processus Extract de chargement initial.

Si vous devez inclure hr.employees_view dans le chargement initial, ajoutez le paramètre suivant au fichier de paramètres Extract de chargement initial :

TABLE SCOTT.TAB1_VIEW;

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 15> ADD EXTRACT extinit SOURCEISTABLE

Sortie :

2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 16> EDIT PARAMS extinit

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 17> VIEW PARAMS extinit

Sortie :

--
--  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";

Commande :

OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 18> START EXTRACT extinit

Sortie :

2018-03-16T14:13:42Z  INFO    OGG-00975  EXTRACT EXTINIT starting
2018-03-16T14:13:42Z  INFO    OGG-15426  EXTRACT EXTINIT started

Etape 5 : création des chemins de distribution

Créez deux chemins de distribution (AABB et CCDD) pour copier les traces locales sur l'hôte distant à partir du client d'administration :

Commande :

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

Sortie :

2018-03-16T17:28:27Z INFO OGG-08511 The path 'AABB' has been added.

Commande :

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

Sortie :

2018-03-16T17:28:35Z INFO OGG-08511 The path 'CCDD' has been added.

Commande :

OGG (https://oggdep.example:9100 oggdep) 17> START DISTPATH aabb

Sortie :

2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started.

Commande :

OGG (https://oggdep.example.com:9100 oggdep) 18> START DISTPATH ccdd

Sortie :

2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.

Si vous utilisez le protocole ogg au lieu de wss, vous devez utiliser l'option TARGETTYPE. Dans ce cas, la syntaxe serait la suivante :

ADD DISTPATH path-name SOURCE source-uri TARGET target-uri [ TARGETTYPE ( MANAGER | COLLECTOR | RECVSRVR ) ]

TARGETTYPE indique le type de cible si le chemin de distribution utilise le protocole hérité. Cet argument n'est valide que si le schéma d'URI cible est ogg.

Etape 6 : création de la réplication principale

Une fois le chargement initial de l'extraction et de la réplication terminé, vous pouvez les supprimer. Ensuite, le processus Replicat principal est créé sur l'hôte distant pour appliquer les données de modification à la base de données cible.

Utilisez AdminClient pour créer le processus de réplication principal. Remarque : le processus Replicat principal est démarré au niveau du SCN d'instanciation.

Commande :

OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 12> ADD REPLICAT repprim EXTTRAIL bb CHECKPOINTTABLE oggadmin.checkpoints

Sortie :

2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.

Commande : EDIT PARAMS

OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 13> EDIT PARAMS repprim

Commande :

OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 14> VIEW PARAMS repprim

Sortie :

--
--  R E P P R I M . p r m
--  Replicat Parameter File
--
Replicat    REPPRIM
USERIDALIAS oggadmin
Map         user01.*
  Target    user01.*;

Commande :

OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 15> START REPLICAT repprim ATCSN 1624963

Sortie :

2018-03-16T17:38:10Z  INFO    OGG-00975  REPLICAT REPPRIM starting
2018-03-16T17:38:10Z  INFO    OGG-15426  REPLICAT REPPRIM started