DB2_Database_Replication

DB2 Replizierung einrichten

Vorarbeiten

  • Es existiert nur eine Freischaltung vom produktiven Datenbankserver db-pdb1.rd.corpintra.net auf den Datenbankserver s96swn3d0.emea.bg.corpintra.net Port 3307 in der DMZ, auf welchem die DB2 läuft. Zur Einrichtung der Replizierung ist jedoch auch eine Verbindung zu Port 523 (DB2 Administration Server) notwendig, da sich ansonsten die Zielmaschine über db2cc nicht konfigurieren lässt.
  • Temporär ist deshalb folgende Vorgehensweise notwendig:
    • Editieren der Datei /etc/hosts auf dem Quellsystem (hier: db-pdb1) und Eintrag der IP-Adresse der Maschine (hier kann auch jeder andere Rechner verwendet werden, der über ssh vom Quellsystem aus erreicht werden kann, und welcher seinerseits das Zielsystem per ssh erreicht) als Host 3d0
    • echo “# temporaerer Eintrag zum Tunneln auf 3d0” >> /etc/hosts
      echo “10.2.2.2     3d0” >> /etc/hosts
    • Tunneln der zwei Ports von der tunnelhost auf das Zielsystem in der DMZ
    • #als root
      ssh -i /path/to/my/id_rsa -nNg -L523:localhost:523 -L3307:localhost:3307 root@s96swn3d0.emea.bg.corpintra.net
  • Nun kann auf dem Quellrechners das Zielsystem katalogisiert werden
  • dbadm@db-idb1:~> db2 CATALOG ADMIN TCPIP NODE SWN3D0 REMOTE s96swn3d0 SYSTEM S96SWN3D0 OSTYPE LINUXX8664
    dbadm@db-idb1:~> db2 TERMINATE
    dbadm@db-idb1:~> db2 CATALOG TCPIP NODE S3D0INST REMOTE s96swn3d0.emea.bg.corpintra.net SERVER 3307 REMOTE_INSTANCE
                        dbadm SYSTEM S96SWN3D0 OSTYPE LINUXX8664
    dbadm@db-idb1:~> db2 TERMINATE
    dbadm@db-idb1:~> db2 CATALOG DATABASE db AS S3D0db AT NODE S3D0INST
    dbadm@db-idb1:~> db2 TERMINATE
  • Schließlich müssen noch vier neue Tablespaces für die Capture und Apply Control Tabellen und die CD Tabellen angelegt werden
    • TSASNAA
    • db2 “CREATE  REGULAR  TABLESPACE TSASNAA PAGESIZE 32 K  MANAGED BY SYSTEM  USING
        (‘/db/db/data/dbadm/NODE0000/SQL00001/TSASNAA’ ) EXTENTSIZE 8 OVERHEAD 12.67
        PREFETCHSIZE 8 TRANSFERRATE 0.18 BUFFERPOOL  IBMDEFAULTBP  DROPPED TABLE RECOVERY OFF”
    • TSASNCA
    • db2 “CREATE  REGULAR  TABLESPACE TSASNCA PAGESIZE 32 K  MANAGED BY SYSTEM  USING
        (‘/db/db/data/dbadm/NODE0000/SQL00001/TSASNCA’ ) EXTENTSIZE 8 OVERHEAD 12.67
        PREFETCHSIZE 8 TRANSFERRATE 0.18 BUFFERPOOL  IBMDEFAULTBP  DROPPED TABLE RECOVERY OFF”
    • TSASNUOW
    • db2 “CREATE  REGULAR  TABLESPACE TSASNUOW PAGESIZE 32 K  MANAGED BY SYSTEM  USING
        (‘/db/db/data/dbadm/NODE0000/SQL00001/TSASNUOW’ ) EXTENTSIZE 8 OVERHEAD 12.67
        PREFETCHSIZE 8 TRANSFERRATE 0.18 BUFFERPOOL  IBMDEFAULTBP  DROPPED TABLE RECOVERY OFF”
    • TSCDTABLES
    • db2 “CREATE  REGULAR  TABLESPACE TSCDTABLES PAGESIZE 32 K  MANAGED BY SYSTEM  USING
        (‘/db/db/data/dbadm/NODE0000/SQL00001/TSCDTABLES’ ) EXTENTSIZE 8 OVERHEAD 12.67
        PREFETCHSIZE 8 TRANSFERRATE 0.18 BUFFERPOOL  IBMDEFAULTBP  DROPPED TABLE RECOVERY OFF”
  • Alle weiteren Schritte finden im Replication Center statt, welches in db2cc über das Menu Tools > Replication Center gestartet wird
    • im Menu Replication Center den Punkt Manage Passwords and Connectivity… auswählen
    • [+]
    • mit OK abschließen

Capture Control und Apply Control Tabellen anlegen

  • in der Navigation nach SQL Replication > Definitions > Capture Control Servers wechseln
  • im rechten Fenster durch Rechsklick Create Capture Control Tables > Custom… auswählen
  • bei Capture control server als Quelle db auswählen
  • die Tabelle IBMSNAP_UOW in Control tables über Use an existing table space dem Tablespace TSASNUOW zuweisen
  • alle restlichen Tabellen unter Control tables über Use an existing table space dem Tablespace TSASNCA zuweisen
  • jetzt Haken setzen bei Use this server as both a Capture and Apply control server
  • alle hinzugekommenen Tabellen unter Control tables über Use an existing table space dem Tablespace TSASNAA zuweisen
  • im letzten Wizard-Fenster über OK das generierte Skript ausführen

zu replizierende Tabellen registrieren

  • in der Navigation nach SQL Replication > Definitions > Capture Control Servers > db > Capture Schemas > ASN > Registered Tables wechseln
  • im rechten Fenster durch Rechsklick Register Tables… auswählen
  • in der Zeile NAME LIKE im Feld Value REMOTE_TRANSMISSION_SYSTEM eintragen, auf Retrieve klicken, die gefundene Tabelle auswählen und mit OK bestätigen
  • zur Registerkarte CD Table wechseln und bei Use an existing table space den oben erstellen TSCDTABLES Tablespace auswählen und mit OK bestätigen
  • im letzten Wizard-Fenster über OK das generierte Skript ausführen

Subscription Set erstellen

  • in der Navigation nach SQL Replication > Definitions > Apply Control Servers > db > Subscription Sets wechseln
  • im rechten Fenster durch Rechsklick Create… auswählen
  • auf der ersten Registerkarte Set Information des Create Subscription Set-Wizards folgende Daten eintragen
    • Apply control server alias: db
    • Set name: SubSet1 (frei wählbar)
    • Apply qualifier: ApplyQual1 (frei wählbar)
    • Capture control server alias: db
    • Capture schema: ASN
    • Target server alias: S3D0db
    • Haken setzen bei Activate the subscription set
      • Radio Button setzen bei Make active indefinitly
  • auf der zweiten Registerkarte Source-to-Target Mapping folgende Daten eintragen
    • Server where the Apply program will run: db
    • -+Add…+- klicken
    • [+]
    • in der nun neu eingefügten Zeile in der Spalte Target name den Namen der Zieltabelle auf REMOTE_TRANSMISSION_SYSTEM ändern
    • anschließend Change… klicken
      • im Fenster Member properties (user copy) zur Registerkarte Target-Table Table Space wechseln und dort den Radio-Button auf Use an existing table space setzen
      • jetzt den Button … klicken
        • im Unterfenster Retrieve All klicken
        • -+dbDATSPACE1+- auswählen und mit OK bestätigen
      • Fenster Member properties (user copy) mit OK schließen
  • auf der dritten Registerkarte Schedule die Frequency of replication auf eine Minute stellen und mit OK abschließen
  • im letzten Wizard-Fenster über OK das generierte Skript ausführen

Capture Control Server

  • Passwort für Target-Server hinzufügen:
  • dbadm@db-idb1:~> asnpwd add alias S3D0db id dbadm password [mySecretPassword]
     using /db/db/log/replication/password.aix
  • Starten:
  • dbadm@db-idb1:~> asncap CAPTURE_SERVER=db CAPTURE_PATH=/db/db/log/replication

Apply Control Server

  • Starten:
  • dbadm@db-idb1:~> asnapply CONTROL_SERVER=db APPLY_QUAL=APPLYQUAL1 APPLY_PATH=/db/db/log/replication
     PWDFILE=password.aix

Start-/Stop-Skripte

  • Die Replizierung wird durch die beiden Prozesse Caputre Control Server und Apply Control Server gestartet.
  • Da in diesem Szenario Caputre und Apply beide auf dem Quellrechner liegen, laufen auch beide Prozesse auf der db-pdb1.
  • Zum Start beider Prozesse wird das folgende Skript benutzt (User: dbadm):
  • dbadm@db-pdb1:~> ~/scripts/start_db2_replication.sh
  • Zum Stop beider Prozesse wird das folgende Skript benutzt (User: dbadm):
  • dbadm@db-pdb1:~> ~/scripts/stop_db2_replication.sh
  • Ob die beiden Prozesse laufen, lässt sich mit folgendem Kommando überprüfen:
  • dbadm@db-pdb1:~> ps -ef|grep asn
    dbadm  21957     1  0 16:40 pts/7    00:00:00 /home/dbadm/sqllib/bin/asncap CAPTURE_SERVER=db
     CAPTURE_PATH=/db/db/log/replication
    dbadm  21958     1  0 16:40 pts/7    00:00:00 /home/dbadm/sqllib/bin/asnapply CONTROL_SERVER=db
     APPLY_QUAL=APPLYQUAL1 APPLY_PATH=/db/db/log/replication PWDFILE=password.aix
    dbadm@db-pdb1:~>

Information

  • siehe IBM RedBook No such attachment on this page