Oracle GoldenGate : exploitation courante et scénarios d'incident (Microservices 21c / 23ai)
OracleNiveau: AvancéDurée: 5 min (contrôle) – 2 heures (montée de version, ajout de table)Runbook d'exploitation courante et de reprise après incident d'une réplication GoldenGate Microservices en place (pour l'installation, voir le guide d'installation GoldenGate). Si vous ne savez pas quoi faire, commencez par 'Contrôle de santé et du décalage' : le diagnostic en lecture seule vous oriente vers le bon scénario — Extract et Replicat en ABEND (report, discard, erreurs OGG-xxxxx), ajout d'une table déjà remplie à la réplication (SCN cohérent + AFTERCSN), retrait d'une table, resynchronisation d'une seule table, purge des trails (Purge Trail), repositionnement de l'Extract sur un SCN, montée de version/patch, et maintien de l'Extract après un switchover/failover Data Guard côté source. Chaque scénario suit le schéma diagnostic → filet de sécurité → application → vérification.
Topologie: Serveur source (déploiement source, Integrated Extract, Distribution Path) + serveur cible (déploiement cible, Parallel Replicat)
Scénarios
- Contrôle de santé et du décalage (tout va-t-il bien ?) — Lecture seule : Service Manager et microservices, INFO ALL, lag, STATS, décalage heartbeat, état de la capture dans la base et ggserr.log ; rien n'est modifié. Si vous ne savez pas quoi faire, commencez ici.
- Extract ABENDED (arrêté sur erreur) — L'Extract de la source est ABENDED ou redémarre en boucle : la cause (connexion, archived log manquant, log mining, privilèges, disque) est identifiée à partir de l'erreur OGG-xxxxx du fichier report, corrigée, puis l'Extract est redémarré là où il s'était arrêté. La base source n'est pas affectée ; le décalage s'accumule.
- Replicat ABENDED (application impossible sur la cible) — Le Replicat de la cible n'a pas pu appliquer une transaction : la table, l'opération et l'erreur sont identifiées dans les fichiers report et discard ; les données sont corrigées ou l'erreur est contournée temporairement avec REPERROR, puis le Replicat est redémarré là où il s'était arrêté. La cible reste ouverte ; le décalage s'accumule.
- Ajouter une table déjà remplie à la réplication (chargement initial + AFTERCSN) — Ajoute sans interruption une table existante et déjà remplie à une réplication en cours : ADD TRANDATA, expdp/impdp à un SCN cohérent, et un Replicat distinct qui n'applique que les modifications de cette table postérieures à ce SCN (AFTERCSN). Les autres tables continuent d'être répliquées.
- Retirer une table de la réplication — La table ne sera plus répliquée : TABLEEXCLUDE dans l'Extract (ou suppression de la ligne TABLE), MAPEXCLUDE dans le Replicat et, si besoin, DELETE TRANDATA. Les processus sont brièvement redémarrés.
- Resynchroniser une seule table (resync) — Les données d'une table sur la cible ont divergé de la source (modification manuelle, erreur ignorée, chargement initial incomplet) : la table est rechargée depuis la source à un SCN cohérent et un Replicat temporaire applique les modifications postérieures à ce SCN. Les autres tables ne sont pas affectées.
- Les fichiers trail remplissent le disque : purge (Purge Trail) — Le répertoire des trails grossit ou le disque est presque plein : on identifie les fichiers en cours de lecture, une tâche Purge Trail (équivalent de PURGEOLDEXTRACTS en Classic) est définie avec USECHECKPOINTS ; en urgence, les fichiers déjà lus sont supprimés à la main.
- Repositionner l'Extract sur un SCN précis — Vous voulez que l'Extract reparte d'un SCN donné (perte de trail, mauvais point de départ, retour arrière sur la cible) : il est redémarré sur un nouveau fichier trail avec ALTER EXTRACT … SCN et ETROLLOVER. Les mêmes données peuvent arriver une seconde fois sur la cible.
- Montée de version / patch GoldenGate (Microservices) — Passage à une nouvelle version ou à un patch GoldenGate : out-of-place (installer un nouveau home, basculer Service Manager et les déploiements sur le nouveau home via REST) ou in-place avec OPatch. Extract/Replicat s'arrêtent brièvement ; le retour arrière consiste à revenir à l'ancien home.
- Maintenir l'Extract après un switchover/failover Data Guard côté source — Un switchover ou un failover a eu lieu sur la base source ; l'Extract doit se connecter à la nouvelle primary et reprendre depuis son checkpoint : la connexion (credential alias/service), l'état de la capture, HANDLEDLFAILOVER et une éventuelle divergence des données sont vérifiés.
Avant de commencer
- GoldenGate Microservices installé comme dans le guide d'installation : côté source, Integrated Extract … et Distribution Path … dans le déploiement … ; côté cible, Parallel Replicat … dans le déploiement … ; credential aliases ggsrc/ggsrc_pdb (source) et ggtgt (cible).
- Vous disposez du mot de passe oggadmin des deux déploiements (les étapes le demandent ; il n'est pas écrit dans les scripts).… Pour le chargement initial, le mot de passe SYSTEM des deux PDB et le directory OGG_DP (…) créé à l'installation sont prêts.…
- Le service systemd du Service Manager (OracleGoldenGate) tourne sur les deux serveurs.
- Une demande de changement/fenêtre de maintenance est ouverte : …Extract, Distribution Path et Replicat sont arrêtés pendant la montée de version ; le décalage s'accumule puis se résorbe une fois le travail terminé…lorsque l'Extract est rembobiné, les mêmes transactions peuvent arriver une seconde fois sur la cible ; un plan de gestion des collisions a été convenu avec le responsable applicatif…les opérations ignorées par REPERROR manqueront sur la cible ; le responsable métier a donné son accord…les processus sont brièvement redémarrés….
Phases du guide
- État : processus, décalage et services (lecture seule) — Vérifier le Service Manager et les ports des microservices · Afficher les processus source, le décalage de l'Extract et le Distribution Path (source) · Afficher les processus cible et le décalage du Replicat (cible) · Mesurer le décalage de bout en bout avec le heartbeat (cible) · Vérifier l'état de la capture et les archived logs nécessaires dans la base source (source) · Parcourir le journal d'erreurs (source) …
- 1. Diagnostic : pourquoi l'Extract s'est-il arrêté ? — Afficher l'état de l'Extract et l'erreur du report (source) · Vérifier l'état de la capture et les archived logs dans la base (source)
- 2. Filet de sécurité — Sauvegarder les fichiers de paramètres, de checkpoint et de report (source)
- 3. Application : corriger la cause et démarrer l'Extract — Restaurer les archived logs manquants depuis la sauvegarde RMAN (source) · Corriger la cause · Démarrer l'Extract et le surveiller (source)
- 4. Vérification et suites — Vérifier que le décalage se résorbe (source) · Prévenir la cause racine (source)
- 1. Diagnostic : sur quelle opération le Replicat s'est-il arrêté ? — Afficher l'état du Replicat, le report et le fichier discard (cible) · Comparer la ligne en erreur sur la cible et sur la source
- 2. Filet de sécurité — Sauvegarder les fichiers de paramètres, de checkpoint et de report (cible)
- 3. Application : corriger les données et démarrer le Replicat — Corriger les données sur la cible · Rediriger temporairement l'erreur vers le fichier discard : REPERROR (cible) · Démarrer le Replicat (cible)
- 4. Vérification et suites — Vérifier que le Replicat progresse (cible) · Retirer le REPERROR temporaire (cible)
- 1. Diagnostic : la table peut-elle être répliquée ? — Examiner la table sur la source (source) · Afficher l'état du supplemental logging (source) · Vérifier la table sur la cible (cible)
- 2. Filet de sécurité — Sauvegarder les fichiers de paramètres et de checkpoint (source) · Sauvegarder les fichiers de paramètres et de checkpoint (cible) · Sauvegarder la table cible (cible)
- 3. Application : charger la table et la démarrer avec son propre Replicat — Activer le supplemental logging au niveau table (source) · Exclure la table du Replicat principal : MAPEXCLUDE (cible) · Supprimer la ligne MAP explicite de la table dans le Replicat principal (cible) · Ajouter la table à l'Extract (source) · Ajouter un nouveau Replicat pour cette seule table (cible) · Exporter la table à un SCN cohérent (source) …
- 4. Vérification et suites — Comparer les nombres de lignes (source) · Vérifier le nombre de lignes et le nouveau Replicat (cible)
- 1. Diagnostic : où la table est-elle définie ? — Afficher où la table apparaît dans les fichiers de paramètres et son supplemental logging (source) · Afficher le mapping de la table dans le Replicat (cible)
- 2. Filet de sécurité — Sauvegarder les fichiers de paramètres et de checkpoint (source) · Sauvegarder les fichiers de paramètres et de checkpoint (cible)
- 3. Application : retirer la table de l'Extract et du Replicat — Retirer la table de l'Extract (source) · Attendre l'application des enregistrements restants du trail (cible) · Retirer la table du Replicat (cible) · Supprimer la ligne MAP de la table (cible) · Supprimer le supplemental logging au niveau table (source)
- 4. Vérification — Vérifier que la table n'est plus traitée (source)
- 1. Diagnostic : quel espace occupent les trails, et qui les lit ? — Afficher le répertoire et les fichiers trail (source) · Afficher le répertoire des trails et la position lue par le Replicat (cible)
- 2. Application : définir la tâche Purge Trail — Définir la tâche Purge Trail dans le déploiement source · Définir la tâche Purge Trail dans le déploiement cible
- 3. Urgence : supprimer à la main les fichiers trail déjà lus — Supprimer les fichiers trail déjà lus
- 1. Diagnostic : peut-on revenir à ce SCN ? — Afficher la position actuelle de l'Extract (source) · Vérifier le premier SCN de la capture et les archived logs (source)
- 2. Filet de sécurité — Sauvegarder les fichiers de paramètres, de checkpoint et de report (source)
- 3. Application : positionner l'Extract sur le SCN — Arrêter l'Extract, le positionner sur le SCN et le démarrer sur un nouveau fichier trail (source)
- 4. Vérification — Vérifier que l'Extract progresse depuis la nouvelle position (source) · Surveiller les collisions sur la cible (cible)
- 1. Diagnostic : version actuelle et préparation — Relever la version actuelle, les patchs et les processus (source) · Relever la version actuelle, les patchs et les processus (cible)
- 2. Filet de sécurité — Sauvegarder les répertoires du déploiement et du Service Manager (source) · Sauvegarder les répertoires du déploiement et du Service Manager (cible)
- 3. Application : arrêter les processus et monter de version — Arrêter proprement les processus (source) · Arrêter proprement les processus (cible) · Installer le nouveau GoldenGate home (source) · Installer le nouveau GoldenGate home (cible) · Basculer le Service Manager et le déploiement sur le nouveau home (source) · Appliquer le patch avec OPatch (source) …
- 4. Vérification — Démarrer les processus et vérifier la version (source) · Démarrer les processus et vérifier la version (cible) · Retour arrière (si nécessaire)
- 1. Diagnostic : la nouvelle primary et la connexion de l'Extract — Vérifier le rôle et l'état de la capture sur la nouvelle primary (nouvelle primary) · Afficher l'état de l'Extract et les credential aliases (source)
- 2. Filet de sécurité — Sauvegarder les fichiers de paramètres, de checkpoint et de report (source)