Coordonner les attributs de table entre la source et la cible

Suivez cette procédure pour modifier un attribut d'une table source lorsque la fonctionnalité LDD d'Oracle GoldenGate n'est pas prise en charge pour la base de données. Les modifications d'attribut incluent l'ajout ou la modification de colonnes ou de partitions. Il vous indique comment apporter la même modification à la table cible sans entraîner de latence de réplication.

Remarque : pour les bases de données Oracle et MySQL, vous pouvez activer la fonctionnalité de prise en charge des instructions LDD d'Oracle GoldenGate afin de propager les modifications LDD vers la cible, au lieu d'utiliser cette procédure.

  1. Sur les systèmes source et cible, créez une table, appelée table de marqueurs, qui peut être utilisée pour générer un marqueur qui indique un point d'arrêt dans le journal des transactions. Créez simplement deux colonnes simples : l'une en tant que clé primaire et l'autre en tant que colonne standard. Exemple :
CREATE TABLE marker
(
id int NOT NULL,
column varchar(25) NOT NULL,

PRIMARY KEY (id)
);
  1. Insérez une ligne dans la table de marqueurs des systèmes source et cible.
INSERT INTO marker VALUES (1, 1);
COMMIT;
  1. Sur le système source, exécutez Admin Client.

  2. Ouvrez le fichier de paramètres Extract pour le modifier.

    Attention : n'utilisez pas la commande VIEW PARAMS ou EDIT PARAMS pour visualiser ou modifier un champ de paramètres existant qui se trouve dans un jeu d'autres que celui du système d'exploitation local (par exemple, un champ dans lequel l'option CHARSET a été employée pour définir un autre jeu d'éléments). Affichez le fichier de paramètres depuis l'extérieur de l'interface de ligne de commande si tel est le cas ; sinon, le contenu risque d'être endommagé.

  3. Ajoutez la table de marqueurs au fichier de paramètres Extract dans une instruction TABLE.

TABLE marker;
  1. Enregistrez et fermez le fichier de paramètres.

  2. Ajoutez la table de marqueurs à l'instruction TABLE de Data Pump, si vous en utilisez une.

  3. Arrêtez les processus Extract et Data Pump, puis redémarrez-les immédiatement pour éviter tout retard de capture.

STOP EXTRACT *group*
START EXTRACT *group*
  1. Sur le système cible, exécutez Admin Client.

  2. Ouvrez le fichier de paramètres Replicat pour le modifier.

    Attention : n'utilisez pas la commande VIEW PARAMS ou EDIT PARAMS pour visualiser ou modifier un champ de paramètres existant qui se trouve dans un jeu d'autres que celui du système d'exploitation local (par exemple, un champ dans lequel l'option CHARSET a été employée pour définir un autre jeu d'éléments). Affichez le fichier de paramètres à partir du client Admin externe si tel est le cas ; sinon, le contenu risque d'être endommagé.

  3. Ajoutez la table de marqueurs au fichier de paramètres Replicat dans une instruction MAP, et utilisez le paramètre EVENTACTIONS comme indiqué pour arrêter Replicat et ignorer les opérations sur la table de marqueurs.

MAP marker, TARGET marker, EVENTACTIONS (STOP, IGNORE);
  1. Enregistrez et fermez le fichier de paramètres.

  2. Arrêtez puis redémarrez immédiatement le processus Replicat.

STOP REPLICAT *group*
START REPLICAT *group*
  1. Lorsque vous êtes prêt à modifier les attributs de table pour les tables source et cible, arrêtez toute activité utilisateur sur ces tables.

  2. Sur le système source, effectuez une opération UPDATE sur la table de marqueurs en tant que seule opération de la transaction.

UPDATE marker
SET column=2,
WHERE id=1;
COMMIT;
  1. Sur le système cible, exécutez la commande suivante jusqu'à ce qu'elle indique que le processus Replicat est arrêté suite à la règle EVENTACTIONS.
STATUS REPLICAT *group*
  1. Exécutez le script LDD sur les tables source et cible, mais n'autorisez pas encore l'activité des utilisateurs.

  2. Démarrer la réplication.

START REPLICAT *group*
  1. Autoriser l'activité utilisateur sur les tables source et cible.