- Настроить доступ к серверам по DNS-имени
- Создать пользователя для репликации на всех серверах (например, repl_admin). На сервере-издателе дать роль db_owner к базе данных, которую будем реплицировать. На сервере-подписчике — серверная роль db_creator
- Настроить распространителя с помощью мастера (щелкнуть правой кнопкой мыши по папке Replication сервера-распространителя и выбрать Configure Distributor). В процессе настройки задается имя базы данных дистрибьютера и путь к папке для моментальных снимков. При настройке можно сразу указать сервер-издатель. После настройки необходимо в свойствах распространителя задать пароль для публикаций.
- Настроить издателя с помощью мастера (на сервере-издателе раскрыть папку Replication и щелкнуть правой кнопкой мыши по папке Local Publications и выбрать New Publication). В процессе настройки задаются настройки доступа к распространителю (если на шаге 3 не был указан издатель), выбирается база данных, которую необходимо реплицировать, тип репликации (в данном случае рассматривается репликация транзакций), выбираются объекты, участвующие в репликации и задаются настройки. В конце задается имя публикации. Для правильной работы установить для таблиц:
Copy nonclustered Indexes = True
Copy file group associations = True
Copy table partitioning schemes = True
Copy index partitioning schemes = True
Copy full text indexes = True - В свойствах публикации задать Allow initialization from backup = True
- Сделать бэкап базы данных-издателя и скопировать бэкап на подписчика (бэкапа делать в файл с новым именем!).
- Остановить и отключить на распространителе задачу Distribution clean up: distribution
- Восстановить базу данных из бэкапа на подписчике
- В базе данных издателя добавить подписчика с помощью команды:
USE [база_данных_издателя]
GO
EXEC sp_addsubscription @publication = N’название_публикации’
,@subscriber = N’сервер_подписчик’
,@destination_db = N’название_базы_данных_на_подписчике’
,@sync_type = N’initialize with backup’
,@backupDeviceType = N’Disk’
,@backupDeviceName = N’путь_к_бэкапу_на_издателе!’
GO - Включить на распространителе задачу Distribution clean up: distribution
- Проверить в мониторе репликации, что репликация идет без ошибки
MSSQL. Настройка репликации транзакций из бэкапа
Posted on