NMDA: IBM DB2-Snapshot-Backups reagieren nicht
Zusammenfassung: NetWorker Module for Databases and Applications (NMDA) IBM DB2-Snapshot-Backups reagieren nicht.
Symptome
NMDA-Backups von IBM DB2-Snapshots reagieren nicht.
Die DB2-Datenbank befindet sich im Schreibunterbrechungsmodus.
Fehler in db2diag.log
Warning: ---------------------------------------- 2016-05-20-15.05.16.771114+000 E7423877A808 LEVEL: Warning PID : 7733668 TID : 47390 PROC : db2sysc 0 INSTANCE: <instance_name> NODE : 000 DB : APPHDL : 0-57647 APPID: <app_id> AUTHID : EDUID : 47390 EDUNAME: db2agent (instance) 0 FUNCTION: DB2 UDB, database monitor, sqm___sqlmonssagnt, probe:1234 DATA #1 : <preformatted> This occurs when any snapshot other than list applications is attempted on a database that is write suspended. This is necessary due to latching conflicts. This database is skipped in the snapshot, but other databases should still be processed. Skipping database '<db_name>'. For more information on write suspend, please see the 'db2 set write suspend for database' command. ------------------------------------------
Ursache
Der DB2-Workflow funktioniert wie folgt:
DB2-Aufrufe db2ACSPrepare() in der NMDA-DB2-Bibliothek, um die ersten Vorbereitungen für den Hardware-Snapshot durchzuführen. Sobald dies abgeschlossen ist, hält DB2 Database Manager die Datenbank an und ruft die NMDA-DB2-Funktion auf db2ACSSnapshot(). In diesem Fall ruft DB2 db2ACSSnapshot(). Der Workflow reagiert nicht mehr, damit die DB2-Engine das Backup fortsetzen kann. IBM support PMR: 29538.004.000 ist geöffnet. IBM DB2 Engineering benötigt mehr Debugging, um die Ursache für dieses Aufhängen zu ermitteln.
Lösung
Problemumgehung:
- Aktuelles Backup abbrechen
- Nehmen Sie die Datenbank aus dem Schreibunterbrechungsmodus heraus
Um die Ursache zu ermitteln, fordert der IBM DB2-Support die folgenden Informationen zur weiteren Untersuchung an:
- Löschen oder verlagern Sie alle Stacks oder Speicherabbilder im db2dump-Verzeichnis. Es erstellt neue Stapel oder Dumps, ohne alte zu mischen. (UNIX/Linux-Pfad:
/$INSTHOME/sqllib/db2dump) - DB2-Trace für kurze Zeit:
db2trc on -f trace.dmp wait about 30 seconds db2trc off db2trc fmt trace.dmp trace.fmt db2trc flw trace.dmp trace.flw
- Sammeln von Stapeln:
db2pd -stack all -rep 5 5
- Nachdem der obige Schritt abgeschlossen ist, führen Sie Folgendes aus:
procstack <PID> > db2vend.pstack.out
Die <PID> ist die Prozess-ID desdb2vend-Prozess für die Datenbank. - Rufen Sie dann die Snapshot-Backupsitzung ab.
db2 get snapshot for applications on <dbname> > db2snap.out
- Jetzt können Sie "write resume" festlegen und dann das Snapshot-Backup erneut versuchen und sehen, ob es abgeschlossen wird.
- Sammeln Sie ein db2support.zip wie folgt:
db2support . -d <dbname> -c -s
- Komprimieren und an IBM PMR senden:
trace.dmptrace.fmttrace.flwdb2vend.pstack.outdb2snap.outdb2support.zip