Datapropagator : resynchronisation manuelle d'une table
Date de publication : 2.12.2006 , Date de mise à jour : 20.1.2007
Par
fadace (Fabien Celaia)
Procédure permettant d'effectuer une resynchronisation manuelle en utilisant des commandes OS400 de copie, et en forçant le Data Propagator à considérer la synchronisaton comme acquise.
I. Problématique
II. Hypothèse
III. Etapes
IV. Contrôles
I. Problématique
La synchronisation d'une table source à une table cible en utilisant Data Propagator peut durer un temps certain lorsque l'on s'attaque à de gros volumes.
Il se peut donc que ce temps soit en inadéquation avec des contrainres de production.
En fait, il y a deux moment durant lesquels ce problème de durée de synchronisation peut paraître.
- Lors de la première matérialisation de la table sur la cible, losque l'applyer est démarré pour la première fois
- Lorsque le DPR ne "retrouve pas ses petits" et qu'il essaie de resynchroniser la table.
Le point 2 ne peut être acceptable sur des tables à forte volumétrie en production : nous ne pouvons en fait accepter le risque qu'une table source soit totalement vidée en pleine activité en attendant une resynchronisation. C'est pour cette raison que sur ce type de table, le pocessus de Registration sera créé avec un mode Autorefresh à OFF.
Voici donc une procédure à effectuer pas-à-pas afin d'effectuer une resynchronisation manuelle en utilisant des commandes OS400 de copie, et en forçant le Data Propagator à considérer la synchronisaton comme acquise.
 |
Dans le cas d'une subsciption à plusieurs membres, il faut appliquer cette procédure sur tous les membres. Dans le cs contraire, on risque de "pourrir" le point de synchronisation et de planter pour le coup le processus de capture (Asn).
|
II. Hypothèse
| Objet |
Source |
Cible |
| AS400 |
DVPHOST1 |
DVPHOST2 |
| Librairie |
LIBSRC |
LIBTRG |
| Fichier |
FILESRC |
FILETRG |
| Journal |
LIBJRN/JRNSRC |
LIBJRN/JRNTRG |
| Type de réplication |
Capture et applyers sur DVPHOST1 |
| Nom de l'applyer |
APY_01 |
| Nom du set |
A01_S01 |
| Nom de la librairie contenant les tables de change |
ASNCD |
III. Etapes
Créer la REGISTRATION sur le fichier source, depuis DVPHOST1
Créer la subscription et son membre sur le fichier cible, toujours depuis DVPHOST1
Désactiver l'option full refresh pour chaque table source.
update asn.ibmsnap_register
set disable_refresh = 1
where source_owner = 'LIBSRC'
and source_table = 'FILESRC' ; |
Réinitialiser la capture, en utilisant la commande inzdpr
INZDPRCAP JRN(LIBJRN/JRNSRC) |
Modifier les points de synchronisation de la table de PRUNE pour chaque membre de la subscription
update asn.ibmsnap_pruncntl
set synchpoint = null, synchtime = null
where apply_qual = 'APY_01'
and set_name = 'A01_S01' ;
update asn.ibmsnap_pruncntl
set synchpoint = x'00000000000000000000', synchtime = CURRENT TIMESTAMP
where apply_qual = 'APY_01'
and set_name = 'A01_S01' ; |
Forcer un signal capstart dans la table afin de commencer la capture dans les tables de changement
insert into asn.ibmsnap_signal (SIGNAL_TIME, SIGNAL_TYPE, SIGNAL_SUBTYPE, SIGNAL_INPUT_IN, SIGNAL_STATE)
(select current timestamp, 'CMD', 'CAPSTART', MAP_ID, 'P'
from asn.ibmsnap_pruncntl
where source_owner = 'LIBSRC'
and source_table = 'FILESRC'
and apply_qual = 'APY_01'
and set_name = 'A01_S01'
and target_owner = 'LIBTRG'
and target_table = 'FILETRG') ; |
Exécuter la synchronisation via les commandes de l'iSerie, depuis la source
Marquer les souscriptions comme chargées
update asn.ibmsnap_subs_membr
set member_state = 'L'
where apply_qual = 'APY_01'
and set_name = 'A01_S01' ; |
Spécifier le point de synchronisation
update asn.ibmsnap_subs_set
set lastrun = current timestamp, lastsuccess = current timestamp, synchtime = current timestamp, synchpoint = null
where apply_qual = 'APY_01'
and set_name = 'A01_S01'
and activate = 1 ; |
Au besoin (si l'option est active, pourquoi s'ennuyer avec cette procédure !), réactiver l'option full refresh pour chaque table source.
update asn.ibmsnap_register
set disable_refresh = 0
where source_owner = 'LIBSRC'
and source_table = 'FILESRC' ; |
Démarrer l'applyer
STRDPRAPY APYQUAL(APY_01) TRACE(*ERROR) |
IV. Contrôles
Vérifier le contenu de la table asnservice.ibmsna_sbs qui devrait comprendre les informations sur l'applyer.
Si nécessaire, stopper toutes autres activités de transfert (pgm, requêtes, ...)


Copyright © 2006 Fadace. Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc
sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.