Не удается подключиться к базе данных DB2 после восстановления автономного резервного копирования
Вопрос
Это для DB2 9.7 Enterprise Server Edition на AIX.
У меня была полная, автономная резервная копия нескольких баз данных в нашем экземпляре в среде производительности.
Я хотел восстановить эти базы данных в нашей среде интеграции.
Я запустил команду
db2 restore database database_name from
/bkp/instance_name/OfflineBackups/RestorePoint/my_restore_point
taken at 20120321103846 into database_name without prompting;
Для каждой из моих баз данных (конечно, изменение имени базы данных и временной метки).
Каждая база данных успешно восстанавливается в соответствии с DB2. Однако теперь, когда я хочу проверить, действительно ли база данных восстановила то, что я думал, я пытаюсь подключиться к базе данных и получаю ошибку
SQL1117N A connection to or activation of database "database_name" cannot be made
because of ROLL-FORWARD PENDING. SQLSTATE=57019
У меня не было никаких транзакций в процессах в предыдущей базе данных, потому что все подключения были вынуждены отключены, а база данных была недооценена в автономном резервном копировании. Что я делаю?
Решение
Нашел ответ здесь.
Мне нужно было запустить команду
db2 rollforward db database_name to end of backup and complete;
Это передает все в журналы и помещает базу данных в более не ожидающем состоянии, что позволяет подключаться к ней. Мне нужно было сделать это для каждой восстановленной базы данных.
РЕДАКТИРОВАТЬ: Нашел этот изящный самородок, посещая Db2nightshow эпизод. С 9.7 FP2 они представили переменную реестра под названием DB2_Restore_grant_admin_authority. Это удобно, если вы восстанавливаете резервную копию из одного экземпляра к другому, поскольку он автоматически предоставляет владельцу экземпляра SECADM, DBADM, DataCcess и AccessCtr в восстановленных базах данных. При 9,7 FP5 настройка динамична и не требует отскакивания экземпляра. Я понимаю, что мой первоначальный вопрос не имеет ничего общего с безопасностью, но его можно встретить и подумать, что это будет удобный кусочек, размещенный здесь.
РЕДАКТИРОВАТЬ № 2: Недавно я узнал, что если резервная копия является автономной резервной копией на основе архивной базы данных, я мог бы включить пункт
WITHOUT ROLLING FORWARD
в моемRESTORE
командование Это вытащило бы базу данных из ролика в ожидании состояния сразу после успешного восстановления, что означало бы, что мне не пришлось бы тогда выпускатьROLLFORWARD DB
командование
Другие советы
Если тип резервного копирования может быть в онлайн -резервном копировании.
Используйте путь журнала ("/db2logtarget")
Например:- DB2 => RollForward DB userDB до конца журналов и полного пути переполнения ("/home/user/target")