Administration d'une configuration de réplication coordonnée
Cette section contient des instructions pour la coordination des threads et le repartitionnement de la charge globale entre des threads nouveaux ou différents. Un processus Replicat coordonné doit être arrêté correctement avec la commande STOP REPLICAT avant d'apporter des modifications aux spécifications de partition dans les clauses THREAD ou THREADRANGE des instructions MAP. Un arrêt propre garantit que tous les threads, qui peuvent se trouver à différents endroits dans la piste à un moment donné, finissent tous leur travail et arrivent à un emplacement de piste commun.
Au démarrage, le processus Replicat génère une erreur et s'interrompt s'il détecte que le dernier arrêt n'a pas été nettoyé et que le partitionnement dans les instructions MAP a été modifié pour contenir un nombre différent de threads (les threads ont été ajoutés ou supprimés). Toutefois, si les mêmes threads sont conservés dans le fichier de paramètres mais simplement réorganisés entre différentes instructions MAP, le processus Replicat émet un avertissement mais n'abandonne pas. Cela peut entraîner des enregistrements manquants ou en double, car il n'existe aucun moyen d'assurer la continuité des allocations de thread à charge globale de l'exécution précédente.
Ce qui suit est un exemple de cette condition.
Voici le schéma de partitionnement d'origine :
MAP source, target, THREADRANGE(1-5);
MAP source1, target1, THREADRANGE(6-10);
Le repartitionnement suivant du schéma d'origine génère uniquement un avertissement :
MAP source, target, THREADRANGE(1-4);
MAP source1, target1, THREADRANGE(5-10);
Cette section fournit des instructions pour arrêter correctement le processus Replicat avant d'effectuer un repartitionnement, ainsi que des instructions pour tenter de récupérer la continuité du processus Replicat lorsqu'un repartitionnement est effectué après un arrêt incorrect.
Les tâches suivantes peuvent être effectuées pour un groupe de réplication en mode coordonné.
Répartitionnement planifié de la charge globale
Un repartitionnement planifié se produit lorsque le processus Replicat est autorisé à s'arrêter correctement avant d'être relancé avec un nouveau fichier de paramètres contenant le partitionnement de thread mis à jour. Un arrêt pur permet à tous les threads d'arriver à une position de point de reprise commune dans la trace. A ce stade, le nouveau schéma de partitionnement peut être appliqué lors de la prochaine exécution.
-
Exécutez Admin Client.
-
Arrêtez la réplication.
STOP REPLICAT *group*
- Ouvrez le fichier de paramètres pour le modifier.
EDIT PARAMS *group*
-
Apportez les modifications requises aux spécifications
THREADouTHREADRANGEdans les instructionsMAP. -
Enregistrez et fermez le fichier de paramètres.
-
Démarrer la réplication.
START REPLICAT *group*
Récupérer le processus Replicat après un repartitionnement non planifié
Un repartitionnement non planifié se produit lorsque le processus Replicat n'est pas autorisé à s'arrêter correctement avant d'être redémarré avec un nouveau fichier de paramètres contenant le partitionnement de thread mis à jour. Dans ce scénario, tout ou partie des anciens threads n'ont pas pu terminer leur travail et arriver à un point de reprise commun. Au redémarrage, le thread du coordinateur tente d'appliquer l'ancien schéma de partitionnement et le processus Replicat s'interrompt avec une erreur. Vous pouvez récupérer le groupe Replicat coordonné à partir de cette condition de l'une des manières suivantes :
-
Utiliser la copie enregistrée automatiquement du fichier de paramètres
-
Retraiter à partir du filigrane bas avec
HANDLECOLLISIONS
Retraitement à partir du filigrane bas avec HANDLECOLLISIONS
Dans cette procédure, vous repositionnez tous les threads en position faible filigrane. Il s'agit de la première position de point de reprise effectuée parmi tous les threads. Pour l'indiquer autrement, la position du filigrane bas est le dernier enregistrement traité par le fil le plus lent avant l'arrêt impur. Lorsque vous démarrez le processus Replicat, les threads retraitent les opérations qu'ils traitaient avant l'arrêt du processus Replicat, et le paramètre HANDLECOLLISIONS gère toutes les erreurs d'enregistrement en double et d'enregistrement manquant qui se produisent lorsque les threads plus rapides retraitent les opérations qu'ils ont appliquées avant l'arrêt incorrect.
-
Ajoutez le paramètre
HANDLECOLLISIONSau fichier de paramètres de réplication. Il n'est pas nécessaire d'utiliser les optionsTHREADS. -
Exécutez la commande
INFO REPLICATpour le groupe de réplication dans son ensemble (le thread de coordinateur). Enregistrez l'adresse d'octet relative du point de reprise. Il s'agit de la valeur low watermark. Cette sortie affiche également les ID de thread actifs sous la colonneGroup Name. Enregistrez-les également.
INFO REPLICAT *group*
For example:
<pre class="copy"><code>OGG(slc03jgo) 3> info ra detail REPLICAT RA Last Started 2013-05-01 14:15 Status ABENDEDCOORDINATED Coordinator MAXTHREADS 15Checkpoint Lag 00:00:00 (updated 00:00:07 ago)Process ID 11445Log Read Checkpoint File ./dirdat/withMaxTransOp/bg000000001 2013-05-02 07:49:45.975662 RBA 44704Lowest Log BSN value: (requires database login)Active Threads: ID Group Name PID Status Lag at Chkpt Time Since Chkpt1 RA001 11454 ABENDED 00:00:00 00:00:01 2 RA002 11455 ABENDED 00:00:00 00:00:04 3 RA003 11456 ABENDED 00:00:00 00:00:01 5 RA005 11457 ABENDED 00:00:00 00:00:02 6 RA006 11458 ABENDED 00:00:00 00:00:04 7 RA007 11459 ABENDED 00:00:00 00:00:04</code></pre>
- Exécutez la commande
INFO REPLICATpour chaque ID de thread de traitement et enregistrez la position RBA de chaque thread. Notez le meilleur RBA. Il s'agit du filigrane haut du groupe Replicat.
INFO REPLICAT *threadID*
For example:
<pre class="copy"><code>info ra002 REPLICAT RA002 Last Started 2013-05-01 14:15 Status ABENDEDCOORDINATED Replicat Thread Thread 2Checkpoint Lag 00:00:00 (updated 00:00:06 ago)Process ID 11455 Log Read Checkpoint File ./dirdat/withMaxTransOp/bg000000001 2013-05-02 07:49:15.837271 RBA 45603</code></pre>
- Exécutez la commande
ALTER REPLICATpour le thread de coordinateur (Replicat dans son ensemble, sans ID de thread) et positionnez-le sur le RBA low watermark que vous avez enregistré.
ALTER REPLICAT *group* EXTRBA *low_watermark_rba*
- Démarrer la réplication.
START REPLICAT *group*
- Exécutez la commande
INFO REPLICATde base jusqu'à ce qu'elle affiche un RBA supérieur au filigrane haut que vous avez enregistré.HANDLECOLLISIONSgère les collisions qui surviennent en raison de transactions précédemment appliquées.
INFO REPLICAT *group*
- Arrêtez la réplication.
STOP REPLICAT *group*
-
Enlevez le paramètre
HANDLECOLLISIONSou mettez-le en commentaire. -
Démarrer la réplication.
START REPLICAT *group*
Utilisation du fichier de paramètres enregistré automatiquement
Une copie du fichier de paramètres d'origine est enregistrée chaque fois que le fichier de paramètres est modifié avant d'arrêter correctement Replicat. Vous pouvez revenir à ce fichier de paramètres, puis resynchroniser les threads afin qu'ils rattrapent tous le thread ayant la position de point de reprise la plus récente. Une fois les threads synchronisés, vous pouvez basculer vers le nouveau fichier de paramètres, puis démarrer Replicat.
-
Enregistrez le nouveau fichier de paramètres sous un autre nom, puis renommez le fichier de paramètres d'origine enregistré sous le nom approprié (identique au nom du groupe). Le fichier de paramètres enregistré comporte un suffixe
.backupet est stocké dans le sous-répertoiredirprmdu répertoire d'installation d'Oracle GoldenGate. -
Exécutez la commande suivante pour synchroniser les threads de réplication à la position maximale du point de reprise. Cette commande démarre automatiquement le processus Replicat et exécute les threads jusqu'à ce qu'ils atteignent la position maximale du point de reprise.
SYNCHRONIZE REPLICAT *group*
- Exécutez la commande
STATUS REPLICATjusqu'à ce qu'elle indique que le processus Replicat s'est arrêté correctement.
STATUS REPLICAT *group*
-
Enregistrez le fichier de paramètres d'origine sous un autre nom, puis renommez le nouveau fichier de paramètres en nom de groupe.
-
Démarrer la réplication.
START REPLICAT *group*