manueller Failover-Switch auf Standby-Datenbank
Falls die Primärdatenbank (in der Regel die Datenbank auf DB-pdb1) aus welchen Gründen auch immer nicht mehr erreichbar ist, kann manuell auf die Failover-Datenbank (normalerweise DB-pdb2) umgeschaltet werden (ACHTUNG: die Option by force sollte nur dann verwendet werden, wenn die Primärdatenbank tatsächlich nicht mehr erreichbar ist. Ansonsten besteht die Gefahr eines split-brain-Zustands)
db2:~> db2 takeover hadr on database DB [by force]
Nachdem die ursprüngliche Primärmaschine wieder verfügbar ist, kann diese Maschine nun als Standby-Datenbank wieder in das HADR aufgenommen werden. Nach dem Restart der Maschine muss dazu zuerst der Datenbank Administrationsserver und die Instanz gestartet werden. Anschließend wird die ehemalige Primärdatenbank deaktiviert und dann als Standby-DB gestartet:
db2admin start
db2start
db2 deactivate db DB
db2 start hadr on db DB as standby
Um nach der erfolgreichen Synchronisierung die Rollen wieder zu tauschen und DB1 als Primärdatenbank zu verwenden, wird folgender Befehl abgesetzt:
db2 takeover hadr on database DB
Literatur:
Übersicht über unterstützte Umgebungen für DB2 v9.5:
http://www.ibm.com/developerworks/wikis/display/im/DB2+and+DB2+Connect+9.5+for+Linux+-+Supported+Environments
DB2 Universal JDBC Driver, Unterschied zw. Typ 2 und Typ 4:
http://www.ibm.com/developerworks/data/library/techarticle/dm-0512kokkat/
ausführliches Howto zu High Availability Disaster Recovery (HADR) und Automatic Client Reroute (ACR) mit DB2
http://www.ibm.com/developerworks/websphere/techjournal/0705_lee/0705_lee.html
IBM Redbooks:
http://www.redbooks.ibm.com/redbooks/pdfs/sg247363.pdf
http://www.redbooks.ibm.com/redbooks/pdfs/sg246899.pdf
HADR einrichten:
Parallelsystem katalogisieren:
db2 CATALOG ADMIN TCPIP NODE PDB2 REMOTE 10.1.1.1 SYSTEM DB2 OSTYPE LINUXX8664
db2 CATALOG TCPIP NODE PDB2INST REMOTE DB-pdb2.rd.corpintra.net SERVER 50002 REMOTE_INSTANCE db SYSTEM DB-PDB2 OSTYPE LINUXX8664
db2 CATALOG DATABASE DB AS PDB2DB AT NODE PDB2INST
zwei HADR-Ports in /etc/services eintragen:
db2_hadr_p 55001/tcp
db2_hadr_s 55002/tcp
HADR einrichten über Assistenten in db2cc
im Kontextmenu der DB DB den Punkt High Availability Disaster Recovery auswählen und über Set Up… den Einrichtungsassistenten starten
folgende Einstellungen vornehmen:
#– Update configuration parameters on primary database – DB1 – dbuser – DB
UPDATE DB CFG FOR DB DB USING LOGINDEXBUILD ON
UPDATE DB CFG FOR DB DB USING INDEXREC RESTART
#– Copy backup images from primary to standby system.
# Location on primary system : /db/db2log/backup
# Location on standby system : /db/db2log/backup
#– Restore database on standby system – DB2 – PDB2INST (db) – PDB2DB (DB)
RESTORE DATABASE DB FROM “/db/db2log/backup” TAKEN AT 20100226114902 REPLACE HISTORY FILE WITHOUT PROMPTING
#– Configure databases for client reroute – DB1 – dbuser – DB
UPDATE ALTERNATE SERVER FOR DATABASE DB USING HOSTNAME DB2 PORT 50002
#– Configure databases for client reroute – DB-PDB2 – PDB2INST (DBadm) – PDB2DB (DB)
UPDATE ALTERNATE SERVER FOR DATABASE DB USING HOSTNAME DB-PDB1 PORT 50002
#– Update services file on primary system – DB-PDB1
#– Service name : db2_hadr_p
#– Port number : 55001
#– Service name : db2_hadr_s
#– Port number : 55002
#–
#– Update services file on standby system – DB-PDB2
#– Service name : db2_hadr_p
#– Port number : 55001
#– Service name : db2_hadr_s
#– Port number : 55002
#–
#– Update HADR configuration parameters on primary database – DB-PDB1 – DBadm – DB
UPDATE DB CFG FOR DB USING HADR_LOCAL_HOST 10.1.1.1
UPDATE DB CFG FOR DB USING HADR_LOCAL_SVC 55001
UPDATE DB CFG FOR DB USING HADR_REMOTE_HOST 10.1.1.2
UPDATE DB CFG FOR DB USING HADR_REMOTE_SVC 55002
UPDATE DB CFG FOR DB USING HADR_REMOTE_INST DBadm
UPDATE DB CFG FOR DB USING HADR_SYNCMODE NEARSYNC
UPDATE DB CFG FOR DB USING HADR_TIMEOUT 120
UPDATE DB CFG FOR DB USING HADR_PEER_WINDOW 120
CONNECT TO DB
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
UNQUIESCE DATABASE
CONNECT RESET
#– Update HADR configuration parameters on standby database – DB-PDB2 – PDB2INST (DBadm) – PDB2DB (DB)
UPDATE DB CFG FOR DB USING HADR_LOCAL_HOST 10.1.1.1
UPDATE DB CFG FOR DB USING HADR_LOCAL_SVC 55002
UPDATE DB CFG FOR DB USING HADR_REMOTE_HOST 10.1.1.2
UPDATE DB CFG FOR DB USING HADR_REMOTE_SVC 55001
UPDATE DB CFG FOR DB USING HADR_REMOTE_INST DBadm
UPDATE DB CFG FOR DB USING HADR_SYNCMODE NEARSYNC
UPDATE DB CFG FOR DB USING HADR_TIMEOUT 120
UPDATE DB CFG FOR DB USING HADR_PEER_WINDOW 120
#– Start HADR on standby database – DB-PDB2 – PDB2INST (DBadm) – PDB2DB (DB)
DEACTIVATE DATABASE DB
START HADR ON DATABASE DB AS STANDBY
#– Start HADR on primary database – DB-PDB1 – DBadm – DB
DEACTIVATE DATABASE DB
START HADR ON DATABASE DB AS PRIMARY