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

Восстановление зеркальной базы данных SQL Server 2005

Сценарий: мы хотим использовать версию зеркального отображения БД в SQL Server 2005 Standard вместе со следящим сервером в среде домена Active Directory. База данных загружается со стороннего сервера приложений, который нельзя изменить, кроме строки подключения к БД.

С этим связаны два вопроса:

  1. Как сделать сбой незаметным (или, по крайней мере, потребовать меньше ручной работы), чтобы наш сторонний сервер приложений тратил как можно меньше денег? Я думаю, настроить DNS "sqlserver.ourdomain", который указывает на основной и использовать его в строке подключения. Затем, если это не удается, мы меняем DNS, чтобы он указывал на зеркало, и перезапускали сервер приложений. Не невидимый или автоматический, но дешевый и, кажется, должен работать.
  2. Как мы перемещаем транзакции из вторичного обратно в первичный после сбоя и повторно продвигаем первичный? Этот процесс должен учитывать «отмену» режима аварийного переключения в №1. Очевидно, что если мы выберем вариант DNS, описанный выше, мы перенаправим DNS на основной, но как мне вернуть систему в прежнее состояние - с основным обновленным с зеркала, а зеркало снова переведено в зеркало?

Вопрос 1: Вы слишком много думаете об этом. Спецификации зеркального отображения базы данных SQL 2005 встроены в строку подключения. Вы указываете и основной сервер, и зеркало прямо в строке подключения, и драйвер пробует серверы по порядку. Это одно из достоинств зеркального отображения базы данных - никаких изменений клиентского приложения не требуется.

Больше информации здесь: http://msdn.microsoft.com/en-us/library/5h52hef8.aspx http://msdn.microsoft.com/en-us/library/ms366348.aspx

Вопрос 2: Вы сказали, что используете следящий сервер, поэтому я предполагаю, что вы используете автоматическое переключение при отказе. Зеркальное отображение базы данных SQL 2005 делает это автоматически - подробнее здесь:

http://msdn.microsoft.com/en-us/library/ms189590.aspx

Если вы не используете автоматическое переключение при отказе, это все еще довольно просто: вы просто щелкаете правой кнопкой мыши базу данных, переходите в зеркальное отображение базы данных, и вы можете отказывать базы данных взад и вперед от первичной к вторичной и наоборот. Они автоматически возвращаются в синхронизацию после сбоев, например перезагрузки.

Еще одна вещь, о которой следует помнить (не имеющая отношения к вашим вопросам, но то, о чем люди иногда не думают) - если исходный принципал будет отключен на какое-то время, вам следует удалить зеркальное отображение, чтобы предотвратить журнал транзакций для нового принципала выходит из-под контроля. В противном случае необходимо хранить весь журнал транзакций, поскольку зеркальное отображение предполагает, что старый принципал в какой-то момент вернется в оперативный режим.

Спасибо