Pull to refresh

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

Reading time3 min
Views60K
В моем примере я буду настраивать одностороннюю репликацию на уровне транзакций. Надо иметь ввиду, что существую и другие типы репликации данных SQL.

Предварительно необходимо удостовериться, что компонент SQL Server Replication установлен на обоих серверах.

1. На сервере-распространителе создаем локальную публикацию (local publication).


1.1. Указываем базу, данные которой мы хотим реплицировать на другой сервер

1.2. Выбираем тип репликации. В нашем случае это будет Transactional Publication

1.3. Указываем публикуемые таблицы или иные объекты

1.4. При необходимости можем задать фильтр, по которому будут отбираться данные для репликации

1.5. На странице Snapshot Agent ничего не отмечаем

1.6. На странице Agent Security указываем учетные данные для агента моментальных снимков и агента чтения журнала. Для Snapshot Agent’а можно указать учетную запись, под которой запускается SQL Server Agent. Позже, в свойствах созданной публикации, мы можем задать другую учетную запись для запуска снапшот агента (Snapshot Agent).

1.7. На странице Wizard Actions ставим галку Create the Publication

1.8. На заключительной странице задаем имя публикации

1.9. В свойствах только что созданной публикации задаем папку для хранения моментальных снимков (Put files in the following folder), которую предварительно необходимо создать. Папка моментальных снимков является обычной общей папкой. Для агентов, осуществляющих чтение и запись в этой папке, необходимо установить соответствующие разрешения для доступа к ней. В этом каталоге хранятся объекты, необходимые для репликации на первом узле. В нашем случае необходимо предоставить на данную папку полные права той учетной записи, от имени которой запускается SQL Server Agent на сервере-распространителе. Далее в свойствах созданной локальной публикации выбираем пункт «Subscription Options» и ставим галку напротив опции «Compress Snapshot» (это уменьшит нагрузку на сеть), а параметр опции «Allow anonymous subscriptions» ставим в значение «false».

1.10. В SQL Server Management Studio на сервере-распространителе заходим в Security – Logins и добавляем пользователя, от имени которого стартует агент моментальных снимков на этом сервере. В поле Default database выбираем базу данных, которую мы реплицируем, а в закладке User Mapping наделяем данного пользователя ролью db_owner на реплицируемую базу, а также на созданную в процессе создания репликации базу Distribution.

2. На сервере-подписчике создаем локальную подписку (local subscription).


2.1. Выбираем сервер-распространитель и нужную нам публикацию

2.2. На странице Distribution Agent Location указываем, где будет запускаться Агент распространителя. В случае с запуском всех агентов на сервере-распространителе мы получим упрощенное администрирование, но и повышенную нагрузку на сам сервер-распространитель. Выбираем второй вариант – Run each agent at its Subscriber (pull subscriptions), что позволит нам не нагружать дополнительно наш основной сервер.

2.3. Указываем базу, в которую будут реплицироваться данные.

2.4. На странице Distribution Agent Security указываем учетные данные для запуска Агента распространителя. Можно указать учетную запись, под которой запускается SQL Server Agent. После этого предоставляем этой учетной записи разрешение на чтение папки моментальных снимков. Кроме того, данная учетная запись должна быть добавлена в SQL сервера-распространителя с ролью Public на реплицируемую базу, после чего – в Access List публикации (в свойствах локальной публикации надо выбрать Publication Access List).

2.5. На странице Synchronization Schedule указываем расписание синхронизации для каждого Агента. Для нашего случая выбираем запуск по требованию или по расписанию (например, каждый час)

2.6. На странице Initialize Subscriptions указываем инициализацию при первой синхронизации

2.7. На странице Wizard Actions ставим галку Create the subscription(s).

3. Запуск репликации, проверка.


3.1. На сервере-распространителе выполним Reinitialize All Subscriptions. Укажем, что необходимо создать новый моментальный снимок. В результате этой процедуры в папке хранения моментальных снимков должна создастся новая папка со снимками.

3.2. Мы можем отслеживать состояние репликации и запускать репликацию в утилите Replication Monitor, а также через задания SQL Server Agent.
Tags:
Hubs:
Total votes 20: ↑15 and ↓5+10
Comments10

Articles