DB2: восстановить онлайн-образ резервной копии, использующий TSM в качестве метода архивирования журналов.

Я пытаюсь локально восстановить онлайн-образ резервной копии DB2 с удаленного сервера. Я могу восстановить его успешно, но когда я пытаюсь перевернуть базу данных вперед, я получаю эту ошибку:

SQL2071N An error occurred while accessing the shared library "/home/db2inst1/sqllib/adsm/libtsm.a". Reason code: "2".

Глядя на конфигурацию db, я понял, что LOGARCHMETH1 имеет значение TSM, а это означает, что TSM был методом архивирования журналов при исходной установке DB2. Я установил значение disk:/path и снова запустил операцию повтора транзакций. Это статус:

                                 Rollforward Status

 Input database alias                   = devcldx
 Number of members have returned status = 1

 Member ID                              = 0
 Rollforward status                     = DB  pending
 Next log file to be read               = S0000645.LOG
 Log files processed                    =  -
 Last committed transaction             = 2016-08-30-19.48.31.000000 UTC

И это то, что я получаю, когда пытаюсь перейти к концу логов:

SQL1273N  
An operation reading the logs on database "DEVCLDX" cannot continue 
because of a missing log file "S0000645.LOG" on database partition "0" and log 
stream "0".

Очевидно, что этот файл журнала не существует на моей локальной машине.

Можно ли как-нибудь завершить накат?


person MisterStrickland    schedule 07.09.2016    source источник


Ответы (1)


Правильный способ сделать это:

  1. Используйте утилиту db2adutl для извлечения файлов журнала с сервера TSM на исходном компьютере, а затем скопируйте их на целевой компьютер.

  2. Установите клиент TSM на машине и настройте его в качестве основного сервера, чтобы он мог получать файлы журналов. (Это несколько сложно).

Любой из этих вариантов позволит вам восстановить в любой момент времени.

Если ни один из этих вариантов не подходит и восстановление базы данных только до того момента времени, когда резервное копирование завершено, допустимо, у вас есть еще один вариант:

  1. Образ резервной копии базы данных содержит копию активного файла журнала транзакций на момент выполнения резервного копирования. Вы можете извлечь их на диск.

В команду RESTORE DATABASE вы включаете параметр logtarget /path/to/write/files: DB2 будет извлекать включенные файлы журналов из образа резервной копии в указанный каталог при выполнении восстановления.

Затем вы можете выполнить повтор транзакций до конца резервной копии, используя путь:

rollforward database X 
    to end of backup and complete
    overflow log path (/path/to/write/files)
person Ian Bjorhovde    schedule 08.09.2016
comment
Спасибо Ян. Я сделал еще одну резервную копию базы данных онлайн, а также заархивировал файлы журнала, поэтому ваше предложение № 3 решило мою проблему. - person MisterStrickland; 10.09.2016