Настройка репликации в SQL Server 2005

Для синхронизации информации на нескольких серверах с некоторым интервалом часто используют репликацию. Существуют три основных типа репликации:

  - репликация моментальных снимков;
  - репликация транзакций;
  - репликация слиянием.

Далее будет подробно рассмотрена настройка репликации транзакций между двумя серверами: srv1 - будет являться издателем и распространителем, srv2 - будет являться подписчиком.

Шаг 1. Предварительная подготовка реплицируемых данных. Так как вставка значений в столбцы счетчиков (идентифицирующие столбцы) невозможна, необходимо в таблицах подписчика, участвующих в репликации, установить для таких столбцов значение свойства "Не для репликации" - Да:



Шаг 2. Проверка правильности имен серверов, участвующих в репликации. В репликации возможно использование только настоящих имен серверов. Если после установки имя сервера менялось или при попытке настройки репликации возникает ошибка: "В репликации SQL Server необходимо настоящее имя сервера для соединения с ним. Соединение с использованием псевдонима сервера, IP-адреса или любого другого имени не поддерживается. Укажите настоящее имя сервера, "server_name"" необходимо выполнить следующую проверку:

select @@servername
select serverproperty('servername')

Если запросы вернули разные результаты, необходимо выполнить:

exec sp_dropserver 'oldname', 'droplogins'
exec sp_addserver 'newname', 'local'

После чего перезапустить службу SQL Server.

Шаг 3. Настройка распространителя. Для настройки распространителя необходимо подключиться в MSSMS (Microsoft SQL Server Management Studio) к серверу srv1 с правами администратора и в контекстном меню пункта Репликация выбрать Настроить распространение. Далее необходимо указать:

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

Шаг 4. Создание публикации. Для создания публикации предназначен специальный мастер, для запуска которого нужно на сервере-издателе из контекстного меню Локальные публикации выбрать пункт Создать публикацию.

В первом окне мастера необходимо выбрать БД, данные которой будут синхронизироваться на серверах.

На втором окне мастера надо указать тип публикации:



Затем необходимо выбрать объекты (таблицы или отдельные столбцы таблиц, представления, хранимые процедуры, пользовательские функции), которые будут синхронизироваться. Такие объекты называются статьями публикации. После их выбора можно (при необходимости) установить фильтры для исключения ненужных данных.
Далее происходит запуск агента моментальных снимков. Для его немедленного запуска необходимо установить флажок как показано на следующем рисунке:



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

На последнем шаге работы мастера надо указать имя публикации.

Шаг 5. Создание подписки. Создание подписки также выполняется с помощью специального мастера, причем его можно запустить как на издателе, выбрав из контекстного меню созданной публикации Создать подписку, так и на подписчике, выбрав тотже пункт меню Локальных подписок.

В первом окне мастера необходимо указать сервер-издатель и публикацию.

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

Затем необходимо указать сервер-подписчик и базу данных на нем, которая будет синхронизироваться с БД издателя. Если нужного сервера нет в списке, надо нажать кнопку Добавить подписчик и соединиться с нужным сервером.

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

Далее необходимо создать расписание синхронизации. Например, если синхронизация данных должна выполняться каждые два часа с 8.00 до 17.00 с понедельника по пятницу, окно создания расписания будет следующим:



На последнем окне мастера, определяющим инициализацию подписок, лучше оставить настройки по умолчанию:



После чего к БД подписки будет применен моментальный снимок и синхронизация будет выполняться по созданному расписанию.

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

Для того, чтобы на время отключить применение изменений к объектам БД подписчика, нужно отключить вышеуказанное задание. В этом случае после его включения потребуется переинициализация подписки.

Для того, чтобы на время остановить сбор информации об изменениях объектов в БД издателя, необходимо в контекстном меню публикации выбрать пункт Просмотр состояния агента чтения журнала и в открывшемся окне:



нажать кнопку Остановить.


© re-stichka.narod.ru
При публикации данного материала ссылка на источник обязательна.

Hosted by uCoz