7/26/2013

DB2: Восстановление бэкапа базы в существующую базу с другим именем

Предположим мы сняли резервную копию с базы, которая называлась DB2Z, в результате получив файл с таким именем: DB2Z.0.DB2_06.NODE0000.CATN0000.20100930232346.001

Замечаем закономерность, что первая часть имени файла совпдает с алиасом базы данных. На самом деле так и есть. Однако неверно думать, что для того чтобы восстановить резервную копию в существующую базу данных с другим именем, достаточно переименовать файл резервной копии. Имя файла резервной копии следует воспринимать просто как подсказку о том, что она была:
• Получена с базы данных с таким-то алиасом
• Числовое представление типа резервной копии такое-то (0 для полной копии базы, 3 для копии табличного пространства, 4 для копии полученной с помощью LOAD)
• База данных обслуживалась экземпляром (instance) DB2 с таким-то именем
• Копия содержит такой-то узел базы данных (всегда NODE0000 для однораздельных БД)
• Номер каталога узла (всегда CATN0000 для однораздельных баз)
• Время снятия резервной копии
• Номер образа

Для того же чтобы восстановить резервную копию в существующую базу данных с другим именем, нужно выполнить такую последовательность команд:
su ctginst1

db2

CONNECT TO DB1C;

QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;

CONNECT RESET;

RESTORE DATABASE DB2Z FROM "C:\BackUp" TAKEN AT 20100929210626 INTO DB1C LOGTARGET "C:\DB2_01\NODE0000\SQL00002\SQLOGDIR" WITH 2 BUFFERS BUFFER 1024 REPLACE HISTORY FILE PARALLELISM 1 WITHOUT PROMPTING;
UNQUIESCE DATABASE;
Командой db2 - запускаем командный интерпретатор DB2

Командой CONNECT TO DB1C; мы устанавливаем соединение с базой данных, в которую будем восстанавливать резервную копию.

Затем, командой QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS; перводим базу в пассивное состояние ("замораживаем"), при чем немедленно и с принудительным обрыванием всех соединений.

Переподключаемся - CONNECT RESET;.

И только теперь выпоняем команду восстановления. При чем указываем вначале имя той базы данных, с которой была получена резервная копия -DB2Z, но затем говорим чтобы восстановление происходило в базу данных с именем "DB1C" (опция INTO) - RESTORE DATABASE DB2Z FROM "C:\BackUp" TAKEN AT 20100929210626 INTO DB1C LOGTARGET "C:\DB2_01\NODE0000\SQL00002\SQLOGDIR" WITH 2 BUFFERS BUFFER 1024 REPLACE HISTORY FILE PARALLELISM 1 WITHOUT PROMPTING;

Размораживаем базу данных - UNQUIESCE DATABASE;.

При этом у нас не создается база DB2Z - остается только уже существовавшая DB1C


p.s.
su ctginst1
db2 CONNECT TO MAXDB75
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS
db2 CONNECT RESET
// db2 DEACTIVATE DATABASE MAXDB75
sudo db2 RESTORE DATABASE MAXDB75 FROM "/backup/fromAmazon/" INTO MAXDB75
// db2 ACTIVATE DATABASE MAXDB75

No comments:

Post a Comment