Modifier les métadonnées de base de données
Cette procédure est requise pour empêcher les erreurs de réplication lors de la modification des métadonnées suivantes de la base de données source :
-
Jeu de caractères de la base de données
-
Jeu de caractères national
-
Paramètres régionaux
-
Fuseau horaire
-
Sensibilité à la casse des noms d'objet
Si ces modifications sont effectuées sans effectuer cette procédure, l'erreur suivante se produit :
2013-05-26 20:10:09 ERROR OGG-05500 Detected database metadata mismatch between current trail file ./dirdat/_p/v1000000003 and the previous sequence. *DBTIMEZONE: [GMT]/[UTC].
Cette procédure arrête le processus Extract, puis crée un fichier trace (trail). Les nouvelles métadonnées de base de données sont incluses dans ce nouveau fichier avec les transactions qui ont démarré après la modification.
-
Arrêtez l'activité de transaction sur la base de données source. Les métadonnées ne sont pas encore modifiées dans la base de données.
-
Sur le système source, exécutez la commande
SEND EXTRACTavec l'optionLOGENDjusqu'à ce qu'elle indique qu'il n'y a plus de données de journalisation à capturer.SEND EXTRACT *group* LOGEND -
Arrêtez l'extraction.
STOP EXTRACT *group* -
Sur chaque système cible, exécutez la commande
SEND REPLICATavec l'optionSTATUSjusqu'à ce qu'elle affiche le statut "At EOF" pour indiquer qu'elle a terminé le traitement de toutes les données de la trace. Cette opération doit être effectuée sur tous les systèmes cible jusqu'à ce que tous les processus Replicat renvoient "At EOF".SEND REPLICAT *group* STATUS -
Arrêtez les pompes de données et la réplication.
STOP EXTRACT *group* STOP REPLICAT *group* -
Modifiez les métadonnées de la base de données.
-
Sur le système source, exécutez la commande
ALTER EXTRACTavec l'optionETROLLOVERpour que le processus Extract principal transfère la trace locale au début d'un nouveau fichier.ALTER EXTRACT *group*, ETROLLOVER -
Démarrer l'extraction.
START EXTRACT *group* -
Repositionnez les processus Replicat pour qu'ils commencent au nouveau numéro de séquence de trace.
ALTER REPLICAT *group*, EXTSEQNO *seqno*, EXTRBA *RBA* -
Démarrez les processus Replicat.
START REPLICAT *group*