копирование базы данных db2 из одного экземпляра в другой - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть одна база данных под экземпляром db2inst4, и я хочу скопировать эту базу данных в другой экземпляр, db2inst1. Я сделал резервную копию с помощью следующей команды

резервное копирование db2 дБ TDB онлайн

Резервное копирование выполнено успешно. Временная метка для этого образа резервной копии: 20200109121153

, после этого я попытался восстановить bck в базу данных TDB для восстановления базы данных db2inst1

db2 из / appsdata / db2inst4 /, взятой из 20200109121153 dbpath в / appsdata / db2inst1

DB20000I Команда RESTORE DATABASE выполнена успешно

Восстановление, по-видимому, прошло успешно. Но когда я проверяю db2inst1, чтобы увидеть, есть ли база данных TDB, я получаю следующий

[db2inst1@xxx ~] $ ./db2 list db directory

SQL1057W Системный каталог базы данных пусто. SQLSTATE = 01606

я не знаю, что мне не хватает

1 Ответ

2 голосов
/ 03 февраля 2020

Вы определенно использовали db2inst1 во время выполнения команды RESTORE, с помощью команды echo $DB2INSTANCE или get instance?

В противном случае утилита восстановления могла бы проверить среду вашего текущего экземпляра, определили, что ваша база данных TDB там уже существует, и восстановили ее, как вы и просили.

Кроме того, простого изменения dbpath не обязательно достаточно, поскольку вам также может потребоваться перенаправить контейнеры табличного пространства, и Могут быть и другие соображения. Например, см .:

https://www.ibm.com/support/pages/how-retore-database-between-different-instance-avoid-authorization-issue-new-instance-user

...