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 :
-
Charger la base de données cible avec un petit ensemble de tables à partir du sous-ensemble de la base source.
-
Charger des données dans un environnement hétérogène
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.

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 :
-
Ajouter et configurer une extraction de chargement initial : cette extraction permet de copier le contenu existant d'une ou de plusieurs tables de la source vers la base de données cible.
-
Configure Change Data Capture : Permet de copier les modifications transactionnelles de la source vers la base de données cible. Remarque : l'architecture de microservices ne prend pas en charge le chargement direct des données avec Oracle GoldenGate.
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 :
-
Extraction et réplication de chargement initial : réplique le contenu existant des tables de base de données.
-
Primary Extract and Replicat : Les processus Replicates modifient les données des tables de base de données.
-
Chemins de distribution : transfère les fichiers trace vers le système cible.
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.
-
L'extraction principale est démarrée. Il est responsable de la capture des données de modification et du numéro SCN d'enregistrement.
-
La base de données est surveillée. La base de données attend que le SCN de la transaction ouverte la plus ancienne apparaisse après le SCN d'inscription. Il s'agit du SCN d'instanciation.
-
Le SCN d'instanciation est utilisé lors de la création des processus Extract et Replicat de chargement initial.
-
Le SCN d'instanciation est utilisé pour créer le processus Replicat principal, une fois la réplication de chargement initiale terminée.
-
Pour MySQL, l'instanciation précise est applicable uniquement aux bases de données source et cible MySQL. Elle est implémentée à l'aide de l'utilitaire
Dumpdu shell MySQL. Pour plus d'informations sur l'utilitaireDump, reportez-vous à MySQL Dump Utility.
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