12/07/13 DJRA-DPROPRProduction Informatique Sylvie Brunet PRESENTATION DE DJRA ET DPROPR /var/www/apps/conversion/tmp/scratch_4/157427991.doc 1/12 12/07/13 DJRA-DPROPR Rappel de l’architecture en TEST Nom du DB2 :DB2T machine :SYSA TABLES SOURCES (*0) SIGMA T% Owner : dataware ? CAPTURE TABLES CIBLES (*2) Tnnxx ou nn numéro réservé Owner : dataware ? APPLY TABLE CD_T% (*1) Owner : ASN Alimentation Purge Log DB2 TABLES PARAMETRES PRODUIT Owner : ASN TABLES ENTREPROT (*3) T% Owner : dataware ? TABLES DATAMART T% (*4) Owner :dataware ? Alimentation Fichiers plats Légende : Les éléments en jaune sont gérées par les applicatifs Les éléments en vert sont des composants techniques associées au produit Datapropagator Les tables en orange sont des tables techniques dans lesquelles Datapropagator propage des mises à jour . sous forme d’une STC) ou cyclique (choix probable pour le test ) . Elle sera inférieure si la volumétrie des TABLES CD_% (*1) augmente de façon considérable). /var/www/apps/conversion/tmp/scratch_4/157427991. leur données sont accessibles par les applicatifs : en lecture pour l’alimentation de l’entrepôt et en suppression (delete) pour faire les purges. CAPTURE est un processus de capture des mises à jour . lorsque il ne tourne pas de façon continue. il se repositionne sur les logs DB2 au point d’arrêt (maximum 7 jours) APPLY est un processus de l’application des mises à jour sous forme des jobs soumis par l’ Administrateur dans l’environnement de Test.doc 2/12 . il peut tourner en permanence (en background – choix en production. planifiés sous OPC dans l’environnement de Production (avec une fréquence à déterminer . la fréquence peut-être égale ou inférieure aux besoins de l’applicatif. Aujourd’hui l’alias du DB2 de test via le produit est DB2TMVS. On utilise un user RACF unique propre à DPROPR: usrdpe Attention ce user est DB2TSADM • Trace pour mettre un fichier de log et tracer ce que fait DRJA /var/www/apps/conversion/tmp/scratch_4/157427991.doc 3/12 .12/07/13 DJRA-DPROPR 1 DJRA (produit micro) – configuration Il faut que les alias des DB2 (source et cible) soit définis dans la configuration de DJRA (fait par l’équipe STARS. Prendre sous File le sous-menu Preferences dans : • Path mettre le chemin des binaires DJRA • Output pour le test mettre dans la directory G:\dpropr TEST • Connection Database correspond (à l’alias DB2) DB2TMVS pour le DB2T Et le UserID le nom RACF pour se connecter au DB2T. sql Replication Sources Connection au DB2 source Ajout de la colonne (ou des colonnes) par un ALTER TABLE colonne en ‘not null with default’ (c’est à dire en fin de table) En standard DJRA ne propose que /var/www/apps/conversion/tmp/scratch_4/157427991. Ce sont les tables ASN. ACTION 1 Définir une table Txxxx en tant que source de DPROPR Push-button DJRA Traduction en DDL DB2 Define One Table as Script : addregTxxxx.XUCD_Txxxx sur la table CD_Txxxx Insertion d’une ligne dans la table ASN. Utiliser la boite Tools to define and maintain replication sources Num.CD_Txxxx (avec 3 colonnes techniques en tête de table IBMSNAP_UOWID char(10) FOR BIT DATA NOT NULL. Ces tables seront mises avec l’option ‘DROP RESTRICT ON DROP’.IBMSNAP_% dans la base DBPROPR.Faire la capture d’une table source Ne jamais utiliser les deux premiers push-buttons de la boite ‘Tools to define and remove control tables : • Create Replication Control Tables • Remove Replication Control Tables • Les tables de contrôles de DPROPR sont créées par des ‘JCL HOST’ par l’ingénieur système.doc 4/12 .12/07/13 DJRA-DPROPR 2 DJRA (produit micro). IBMSNAP_INTENTSEQ CHAR(10) FOR BIT DATA NOT NULL et IBMSNAP_OPERATION CHAR(1) NOT NULL) 2 Rajouter une colonne dans la table de capture CD_Txxxx Création d’un index unique ASN.IBMSNAP_REGISTER List or Change Script : altregTxxxx_JJMMAA.sql a Repliction Source Connection au DB2 source (ou Define Multiple) Création d’un Tablespace TSxxxx Création de la table CD_Txxxx dans le TSxxxx Ajout de l’option ‘DATA CAPTURE CHANGES’ sur la table Txxxx Création de la table ASN. Mais ceci reste faisable.IBMASNP_REGISTER DPROPR pour que la Suppression de la table table source Txxxx ne CD_Txxxx soit plus capturée.12/07/13 DJRA-DPROPR Num. ACTION Push-button DJRA Traduction en DDL DB2 l’ajout de colonne. cela peut entraîner des erreurs et donc des disfonctionnement du produit Dpropr. table CD_Txxxx chargée ou vide Supprimer la table Remove Replication Script : delregTxxxx.Txxxx cette fonction il faut vérifier qu’il n’y a Attention : Ne génère pas plus de tables cibles l’ALTER DATA CAPTURE associées à cette NONE capture Arrêter la fonction capture pendant l’opération Les autres modifications des structures des tables CD_Txxxx sont à effectuer de façon manuelle (Hors DRJA).doc 5/12 . pour les autres modifications il faudra travailler en DB2 natif 3 L’ajout peut se faire avec la fonction CAPTURE active ou désactive. En résumé : Les tables impactées du produit (sur le DB2 source) est la table : ASN. Supression du tablespace Avant d’effectuer DBPROPR.IBMSNAP_REGISTER /var/www/apps/conversion/tmp/scratch_4/157427991.sql CD_Txxxx et le Sources Connection au DB2 source paramétrage Suppression de la ligne dans la table ASN. exemple : AQTEST (je ne connais pas encore les normes au niveau des noms des apply de production). STDISTA pointe sur une table cible Tyyyy AQTEST STDISTB pointe sur une table cible STDISTC pointe sur une table cible Rappel des types de tables cibles et le vocabulaire associé : Complete = signifie que l’on ramène toutes les lignes de la table source. A l’AGME nous partirons normalement un SET par table cible et le nom du SET sera STyyyy ou Tyyyy est le nom de la table cible. même si la ligne n’a pas été modifiée Non-complete = on ne ramène que les lignes modifiées Non-Condensée = on ramène tout l’historique des mise à jour effectuée sur les lignes de la table source Condensée = on ne ramène que la dernière mise à jour effectuée sur les lignes de la table source Image après/ image avant = cela donne une table comportant les colonnes de la table source et leur image avant ‘Xnom_de_la_colonne’ de la table source • CCD non-complète/ non-condensée Ce sont les tables cibles qui contiennent des mise à jour uniquement • CCD complète/condensée Ce sont des tables cibles qui sont une image de la table source avec les colonnes techniques. L’apply est composé de plusieurs subscription SETS. Les lignes supprimées dans la table source sont marquées dans la table cible avec un code opération ‘D’ (suppression ‘logique’) • User Copy Ce sont des tables cibles qui sont une image exacte de la table source /var/www/apps/conversion/tmp/scratch_4/157427991. Nous aurons normalement.B.doc 6/12 .12/07/13 DJRA-DPROPR 3 DJRA (produit micro) – Création de tables cibles Utiliser la boite Tools to define and maintain subscription Set N. qui tourneront en fonction de la fréquence supportée par les flots d’alimentation des tables CD_T% et des volontés des applicatifs. Nom de l’apply. plusieurs Job d’apply. IBMSNAP_SUBS_COLS Suppression de la ligne dans la table ASN.IBMSNAP_SUBS_COLS Mise à jour de la ligne de la table ASN.IBMSNAP_SUBS_SET Connection au DB2 source insertion d’une ligne dans la table ASN.sql Connection au DB2 cible ajout de la colonne sur la table cible ‘ALTER TABLE col not null with default’ Insertion d’une ligne dans la table ASN.IBMSNAP_PRUNCNTL Connection au DB2 cible Création du Tablespace de la table cible dans la base DBDPR.12/07/13 DJRA-DPROPR Num.sql Connection au DB2 cible Insertion d’une ligne dans la table ASN.IBMSNAP_SUBS_MEMBR 5 Supprimer le SET vide Remove empty Subscriptions SETs Script: delsetSTyyyy. ACTION 1 Créer un SET vide Push-button DJRA Create empty subscriptions SETs Add a member to a subscription Set 2 Définir une table cible (dans un SET) Traduction en DDL DB2 Script : addsetSTyyyy.IBMSNAP_PRUNCNTL Suppression des lignes concernant cette table cible dans la table ASN.sql Connection au DB2 cible Suppression de la ligne dans la table ASN.IBMSNAP_SUBS_SET Script: addmemTyyyy.IBMSNAP_SUBS_MEMBR Insertion de n lignes dans la table ASN.IBMSNAP_SUBS_SET /var/www/apps/conversion/tmp/scratch_4/157427991.IBMSNAP_SUBS_COLS 4 Supprimer le membre dans le SET et éventuellement supprimer la table cible Remove members from Subscription SET Script: delmemTyyyy.sql Connection au DB2 cible Suppression de la table cible Tyyyy (si prix l’option remove target est cochée) Suppression de la ligne dans la table ASN.Tsyyyy Création de la table cible Tyyyy Création de l’index sur la table cible (pas toujours obligatoire) 3 Ajouter une colonne dans une table cible List Members or Add a Column to target Tables Script: altmemTyyyy_JJMMAA.sql Connection au DB2 cible Insertion d’une ligne dans la table ASN.doc 7/12 . doc 8/12 .IBMSNAP_SUBS_COL. Comme pour la modification de la CD_T%. Toujours bien vérifier le code SQL généré par DJRA qu’il corresponde bien au besoin. il faut sauvegarder avant le script En cas d’erreur pendant la soumission du script. les ordres SQL générés sont aussi générique et ne correspondent pas forcément à notre attente.12/07/13 DJRA-DPROPR Les deux ‘push_buttons’: • Add Statements or Procedures • Remove Statements or Procedures Nous déconseillons d’utiliser ces fonctions pour des besoins applicatifs en production. /var/www/apps/conversion/tmp/scratch_4/157427991.IBMSNAP_PRUNCNTL (sur le DB2 source) Les limites de DJRA Pour soumettre un script depuis la console DJRA. la modification de la table cible n’est prévue en standard que sous la forme ALTER TABLE.IBMSNAP_SUBS_MEMBR ASN. Ainsi pour les autres modifications ont devra passer en SQL natif. Une dernière contrainte. pour la bonne gestion du produit (a voir) . ce qui répond à un fort pourcentage des modifications de structures en production. ceci par soucis de maintenance. Il faudra faire très attention à l’impact sur les tables paramètres du produit. Dans le cas d’erreur. Maintenant ceux-ci peuvent être utilisés par les DBA. pour faire passer le reste (en sauvegardant une autre fois). La mise à jour en standard n’est que l’ajout de colonne en fin de table. Ceci est lourd. notamment la table ASN.IBMSNAP_SUBS_SET ASN. c’est que l’user RACF host utilisé doit avoir les droits DBADM sur les bases de production et dataware. l’un des repères est ‘le successful’ sur la fenêtre de départ. En résumé : Les tables produits impactées par ces définitions sont : ASN. il faut repérer le dernier commit. Attention au générique dans les fonctions ‘remove’. il est parfois difficile de trouver la cause.IBMSNAP_SUBS_COLS ASN. IBMSNAP_TRACE En production La fonction CAPTURE est une STC : • • • Démarrage sous SDSF (menu 9). en ligne de commande /S DPCAPX Arrêt sous SDSF (menu 9).doc 9/12 .IBMSNAP_TRACE ‘GOCAPT’ qui signifie que la CAPTURE est commencée sur la table source. allez voir les lignes MESSAGE dans la table ASN. Définition Elle permet de récupérer toutes les log DB2 pour les mettre dans les tables produit CD_T%. à froid. Une fois les tables sources et cibles définies Une fois les définitions faites dans le catalogue produit et catalogue DB2. 3. en ligne de commande /F DPCAPX. 2. • • • Pour arrêter ce job il faut lancer la commande /F JKCAPT. il scrute la log DB2 pour faire ces captures. avec l’option PRUNE ou non En général la fonction CAPTURE est démarrée à CHAUD sans l’option PRUNE L’option PRUNE permet de faire le nettoyage des tables CD_T% (au dernier point de commit enregistré dans la ASN.CNTL(TCAPTURE) Une fois ce job démarré.STOP JKCAPT étant le nom du JOB.Les fonctions CAPTURE et APPLY (sur le HOST) FONCTION CAPTURE 1. L’option Prune peut-être lancée à chaud (quand JKCAPT est actif) grâce à la commande /F JKCAPT. En V8 on aura la possibilité d’avoir plusieurs CAPTURE. Il faut redémarrer la fonction de CAPTURE et lancer au moins une fois L’APPLY concerné. Exécution du JOB • PDS : PROD.STOP Déclenchement de la fonction Prune /F DPCAPX. La fonction CAPTURE peut-être démarrée avec plusieurs STATUS : A chaud. Ainsi on retrouve une ligne dans la table ASN.DPROP. Pour que la table source soit réellement CAPTUREE.IBMSNAP_PRUNCNTL par table. Dans cette version 7 de DPROPR elle est unique et donc globale à toutes les tables captures.PRUNE En cas de soucis sur la capture. Cette option peut-être lancée en interactif quand la fonction APPLY tourne.PRUNE /var/www/apps/conversion/tmp/scratch_4/157427991. il passe dans deux phases : éveil et sommeil de façon alternative.12/07/13 DJRA-DPROPR 4. A chaque étape d’éveil. mais il ne s’arrête pas. En production Dans la table TRACE.CNTL(DPAxxxx) Changer la classe 4 en classe H.IBMSNAP_TRACE et ASN. Dans la table APPLYTRAIL on garde 30 jours toutes les lignes qui n’ont pas un status à 0 (les erreurs) et … 9.DPROP.IBMSNAP_UOW et les propages sur les tables cibles du produit (suivant leur type CCD ou user copy). 8. 5.12/07/13 DJRA-DPROPR Ou appeler le pilote (exemple Patrice Cayez) FONCTION APPLY 4.DPROP710.IBMSNAP_APPLYTRAIL 6. En production • PDS : PROD. Définition Elle permet de récupérer les lignes des tables CD_T% qui sont ‘commitées’ pour cela le programme regarde dans la table ASN. allez voir dans la table ASN.OPC. Il y aura plusieurs JOB d’apply. Exécution du JOB • • PDS : PROD. Définition C’est un DSNSTEP2 qui permet de faire une suppression des lignes dans les deux tables ASN.CNTL(CHGAPLQL) /var/www/apps/conversion/tmp/scratch_4/157427991. En cas de soucis ou pour savoir ce cas fait l’APPLY. nous regardons toutes les lignes GOCAPT. 1 .DPROP.INSTLIB(DPPURGE) Changer d’APPLY QUALIFIER Voir le job PROD. Le JOB de PURGE des LOG 7.DBDC.IBMSNAP_APPLYTRAIL. 8 ) <> 'E') et les erreurs 30 jours. un job par ‘apply qualifier’ AQxxxx mais je ne connais pas encore comment on répartira les différentes collectes.doc 10/12 . faire sub puis CAN après. nous purgeons toutes les lignes de plus de deux jours qui ne sont pas des erreurs (SUBSTR(DESCRIPTION.CNTL(TAPPLY) Nous avons pris l’option qu’une fois sont travaille terminée le JOB s’arrête option NOSLEEP. Job d’exécution PDS : GEN. supprimer le user BATDPR passé la JOBPARM en /* et plus en commentaire. -----------------.-----------------.----.---------***************** TOP ********************** ASN IBMSNAP_APPLYTRAIL TABLE 23 table de log APPLY ASN IBMSNAP_CCPPARMS TABLE 1 ASN IBMSNAP_CRITSEC TABLE 0 ASN IBMSNAP_PRUNCNTL TABLE 0 ASN IBMSNAP_PRUNE_LOCK TABLE 0 ASN IBMSNAP_REGISTER TABLE 0 ASN IBMSNAP_SUBS_COLS TABLE 121 1 ligne par colonne de la table cible ASN IBMSNAP_SUBS_EVENT TABLE 0 ASN IBMSNAP_SUBS_MEMBR TABLE 2 1 ligne par table cible ASN IBMSNAP_SUBS_SET TABLE 2 1 ligne par SET ASN IBMSNAP_SUBS_STMTS TABLE 0 ASN IBMSNAP_TRACE TABLE 0 ASN IBMSNAP_UOW TABLE 0 ASN IBMSNAP_WARM_START TABLE 0 *************** BOTTOM ********************* /var/www/apps/conversion/tmp/scratch_4/157427991.---------***************** TOP ********************** ASN IBMSNAP_APPLYTRAIL TABLE 0 ASN IBMSNAP_CCPPARMS TABLE 1 ASN IBMSNAP_CRITSEC TABLE 0 ASN IBMSNAP_PRUNCNTL TABLE 2 une ligne par cible ASN IBMSNAP_PRUNE_LOCK TABLE 0 ASN IBMSNAP_REGISTER TABLE 3 une ligne par source ASN IBMSNAP_SUBS_COLS TABLE 0 ASN IBMSNAP_SUBS_EVENT TABLE 0 ASN IBMSNAP_SUBS_MEMBR TABLE 0 ASN IBMSNAP_SUBS_SET TABLE 0 ASN IBMSNAP_SUBS_STMTS TABLE 0 ASN IBMSNAP_TRACE TABLE 25 utilisé sur le DB2 source (par CAPTURE et APPLY (GOCAPT) ASN IBMSNAP_UOW TABLE 32437 utilisé sur le DB2 source contient l’indicateur des logs commitées ASN IBMSNAP_WARM_START TABLE 0 *************** BOTTOM ********************* • Sur le DB2 cible:DB2W Creator Table/View Type RowCount 1 OF 14 -------. • Sur le DB2 source : DB2X Creator Table/View Type RowCount 1 -------.doc 11/12 .----.12/07/13 DJRA-DPROPR ANNEXE 1 LE PARAMETRAGE DANS DPROPR modifie plusieurs tables du PRODUIT. .........................................................2 1 DJRA (produit micro) – configuration...........................................................Faire la capture d’une table source...................................................................................................................12/07/13 DJRA-DPROPR TABLES DES MATIERES PRESENTATION DE DJRA ET DPROPR....................................................3 2 DJRA (produit micro)..............................................................9 FONCTION APPLY..................................................6 Les limites de DJRA......................................................doc 12/12 ...11 TABLES DES MATIERES............................................................................................................................................2 Alimentation...............................................10 Le JOB de PURGE des LOG......10 ANNEXE 1 LE PARAMETRAGE DANS DPROPR modifie plusieurs tables du PRODUIT................................................................................................................................................................9 FONCTION CAPTURE.............12 /var/www/apps/conversion/tmp/scratch_4/157427991......................4 3 DJRA (produit micro) – Création de tables cibles..................................................................................1 Rappel de l’architecture en TEST...........................................................................................................................................................................................................................8 4............Les fonctions CAPTURE et APPLY (sur le HOST)........................