Назад | Перейти на главную страницу

При успешной настройке SQL Server для зеркального отображения базы данных появляется сообщение об ошибке, говорящее, что он не настроен для зеркального отображения базы данных.

Мне нужно заменить старую базу данных в нашей тестовой среде на новую копию производственной базы данных.

Тестовая среда фактически состоит из двух экземпляров тестовой базы данных на 2 разных серверах в конфигурации зеркального отображения (у нее есть зеркальное отображение, потому что производственная среда имеет зеркальное отображение, а клиент хочет, чтобы тестовая среда была такой же, как производственная).

Я думал, что это будет просто:

Но очевидно, что обруча недостаточно, чтобы перепрыгнуть через него. После дня борьбы с этим (проблемы с разрешениями, загадочные ошибки, проблемы, которые исчезнут, если вы перезапустите SSMS (серьезно), я избавлю вас от полного списка ...) Я, наконец, восстановил новую БД как по принципу, так и по зеркальные экземпляры тестовой БД.

Однако где-то в процессе SQL Server отказался от параметров конфигурации зеркального отображения, поэтому я щелкнул правой кнопкой мыши по принципу, выбрал зеркальное отображение и прошел через мастер безопасности. Когда я щелкнул «Готово» в самом конце мастера безопасности, он сработал, и я получил экран, сообщающий, что все было успешно настроено («Настройка конечных точек» - «Успешно»). Сразу после этого появляется другое окно с вопросом, хочу ли я начать зеркальное отображение, однако, нажав кнопку «Пуск» в этом окне, я получаю следующую ошибку SQL Server:

Ошибка при запуске зеркалирования.

База данных «3DSS_TEST» не настроена для зеркального отображения базы данных. (Microsoft SQL Server, ошибка: 1416)

Итак, я получаю "Зеркалирование успешно настроено!" Затем, как часть того же процесса, «зеркалирование не может начаться, потому что вы не настроили его!» :(

Любые идеи? Кто-нибудь видел это раньше или знает, как выделить более полезное сообщение об ошибке или другую информацию?

Обновление: решено
Как говорит Брайан ниже, я восстановил зеркальную базу данных с неправильным вариантом восстановления, правильный способ был:

RESTORE DATABASE [MyDb]
FROM disk = 'C:\TEmp\MyDb_LIVE_Prod_backup_2010-06-18_for_test_server.bak'
WITH
REPLACE,
NOrecovery /* This should be 'norecovery', my problem was I used 'recovery' */

Спасибо!

Ошибка 1416 часто возникает при восстановлении зеркальной базы данных. Убедитесь, что зеркальная база данных находится в состоянии восстановления (опция NORECOVERY)

Выполните приведенный ниже запрос на зеркальном сервере и проверьте состояние базы данных.

select database_id, user_access_desc, state_desc, recovery_model_desc, is_broker_enabled, log_reuse_wait_desc from sys.databases where name = 'database'

Если зеркальная база данных находится в состоянии ONLINE, вам нужно будет снова восстановить базу данных и последующие резервные копии T-Log с параметром NORECOVERY перед настройкой партнеров зеркального отображения.

Это сработало для меня хорошо:

RESTORE DATABASE [MyDb]
FROM disk = 'C:\TEmp\MyDb'
WITH
REPLACE,
NOrecovery /* */