NMDA. Резервные копии моментальных снимков IBM DB2 не реагируют
Summary: Модуль NetWorker для баз данных и приложений (NMDA) Резервные копии моментальных снимков IBM DB2 не отвечают.
Symptoms
Резервные копии моментальных снимков NMDA IBM DB2 не отвечают.
База данных DB2 находится в режиме приостановки записи.
Ошибка в 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. ------------------------------------------
Cause
Рабочий процесс DB2 работает следующим образом:
вызовы DB2 db2ACSPrepare() в библиотеке NMDA DB2, чтобы выполнить начальную подготовку к моментальному снимку оборудования. Как только это будет сделано, DB2 Database Manager приостанавливает работу базы данных и вызовет функцию NMDA DB2 db2ACSSnapshot(). В этом случае DB2 не вызывает db2ACSSnapshot(). Рабочий процесс перестает реагировать на запрос модуля DB2 на продолжение резервного копирования. Поддержка IBM PMR: 29538,004,000 открыто. Инженерам IBM DB2 требуется дополнительная отладка, чтобы определить основную причину этого зависания.
Resolution
Временное решение.
- Отменить текущее резервное копирование
- Вывод базы данных из режима приостановки записи
Чтобы выяснить первопричину, служба поддержки IBM DB2 запрашивает следующую информацию для дальнейшего изучения:
- Удалите или переместите все стеки или дампы в каталоге db2dump. Он создает новые стеки или дампы, не смешивая старые. (путь к UNIX/Linux:
/$INSTHOME/sqllib/db2dump) - Трассировка DB2 в течение короткого времени:
db2trc on -f trace.dmp wait about 30 seconds db2trc off db2trc fmt trace.dmp trace.fmt db2trc flw trace.dmp trace.flw
- Собирайте стеки:
db2pd -stack all -rep 5 5
- После выполнения описанного выше шага выполните
procstack <PID> > db2vend.pstack.out
PID <> — это идентификатор процессаdb2vendпроцесса для базы данных. - Затем получите сессию резервного копирования снимков,
db2 get snapshot for applications on <dbname> > db2snap.out
- Теперь можно возобновить запись, а затем повторить попытку резервного копирования моментального снимка и проверить, завершится ли он.
- Соберите db2support.zip следующим образом:
db2support . -d <dbname> -c -s
- Заархивируйте и отправьте в IBM PMR:
trace.dmptrace.fmttrace.flwdb2vend.pstack.outdb2snap.outdb2support.zip