User Tools

Site Tools


tasks:mirroring

Перенос базы QP7.Framework на другой сервер с использованием SQL Mirroring

Prerequisites

  • Опцию АutoClose в свойствах исходной базы данных нужно выставить в false.
  • Опция Recovery Model должна иметь значение Full, а не Simple, как по умолчанию (см. Бэкапы баз QP7.Framework)

Настройка зеркала

  • Создаем полный бэкап базы данных и восстанавливаем его на новом сервере под тем же названием и с выставленной опцией WITH NO RECOVERY. После окончания процесса база должна появиться в списке в состоянии Restoring. Перед созданием бэкапа должны быть обязательно выполненены задачи из раздела Prerequisites.
  • Создаем бэкап лога транзакций на исходной базе данных и восстанавливаем его на новой БД c опцией WITH NO RECOVERY
  • Создаем зеркало, запустив для исходной базы мастер настройки Tasks → Mirror. При этом выбираем конфигурацию без witness-сервера. Остальные настройки оставляем по умолчанию. В конце процесса выбираем Start Mirror. После этого, если все прошло успешно, новая база данных будет какое-то время в состоянии In Recovery, выполняя транзакции, прошедшие с момента последнего бэкапа Transaction Log, а затем перейдет в состоянии Restoring. Исходная база при этом приобретет статус Synchronized.
  • Добавляем во все Connection String параметр Failover Parnter=<имя нового сервера>;

Переключение

  • Для каждой базы на базе master выполняется запрос ALTER DATABASE AdventureWorks SET PARTNER FAILOVER GO. Полный список запросов лучше подготовить заранее
  • Чтобы не менять многочисленные Connection Strings создаем Alias в SQL Server Configuration Manager, ссылающийся на новый сервер, а в качестве имени алиаса указать старое имя сервера. Алиас на именованный Instance настраивается через Named Pipes как \\<имя компьютера>\pipe\MSSQL$<имя instance>\sql\query

Discussion

Enter your comment
 
tasks/mirroring.txt · Last modified: 2009/07/28 14:23 (external edit)