Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 DB2v9.7 for LUW. Как восстановить базу данных с DMS tablespace.  [new]
curious_man
Member

Откуда:
Сообщений: 140
Здравствуйте.
В инстансе db2inst1 есть база MYDB, которая содержит DMS табличные пространства. Я сделал бэкап этой базы.
Пытаюсь создать новую базу данных из бэкапа в тот же экземпляр.
База работает под AIX 6.1

Восстанавливаю так:
db2 RESTORE DATABASE MYDB FROM "/home/db2inst1/backup" TAKEN AT 20160617144252 TO "/home/db2inst1/MYDB1" INTO MYDB1 WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING

Однако после восстановления появляется ошибка:
SQL1271W Database "MYDB1" is recovered but one or more table spaces are
off-line on node(s) "0".

Даю команду: db2 list tablespaces show detail
Показывает одно и тоже плохое состояние для всех DMS табличных пространств:
State = 0x2001100

Как я понял, при создании новой MYDB1 из бэкапа вычитываются примые пути к файлам контейнеров и db2 пытается создать контейнера с таким же именем, как и уже существующие. И выдает ошибку.

Может в команде RESTORE есть возможность переопределять пути к DMS-tablespace?

В логе такие ошибки видны:
...
2016-06-22-15.08.10.726190+180 I176658A548 LEVEL: Error
PID : 23855330 TID : 22389 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000
EDUID : 22389 EDUNAME: db2bm.26430.0 (MYDB1) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbDMSAddContainerRequest, probe:871
MESSAGE : ZRC=0x80020039=-2147352519=SQLB_CONTAINER_IN_USE
"Container is already being used"
DATA #1 : <preformatted>
Error acquiring container 0 (/home/db2inst1/MYDB/MYDB_TS1/T0001.DAT) for tbsp 9. Rc = 80020039
...

Также прикрепляю полный протокол лога.

К сообщению приложен файл (db2diag.txt - 144Kb) cкачать
22 июн 16, 15:19    [19323258]     Ответить | Цитировать Сообщить модератору
 Re: DB2v9.7 for LUW. Как восстановить базу данных с DMS tablespace.  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4947
curious_man,

Добрый день.

db2 RESTORE DATABASE MYDB FROM "/home/db2inst1/backup" TAKEN AT 20160617144252 TO "/home/db2inst1/MYDB1" INTO MYDB1 REPLACE EXISTING REDIRECT GENERATE SCRIPT mydb1.clp

В скрипте исправляете все абсолюнтые пути контейнеров пространств так, чтоб они не указывали на существующие пути от другой базы, и запускаете скрипт на выполнение.
22 июн 16, 15:35    [19323338]     Ответить | Цитировать Сообщить модератору
 Re: DB2v9.7 for LUW. Как восстановить базу данных с DMS tablespace.  [new]
curious_man
Member

Откуда:
Сообщений: 140
Mark Barinstein,

Спасибо Mark. Все получилось.
22 июн 16, 17:31    [19323865]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить