1. На дистрибьютере выбираем "Configure Distribution". В паблишерах выбираем принципал и миррор, дистрибьютер удаляем.
Не забыть дать права на папку с репликационными данными.
2. На принципла и мирроре выбираем "Configure Distribution" и указываем дистрибьютер.
3. На принципале выбираем "New Publication" и настраиваем публикацию.
Тип: транзакционная
Snapshot Agent: Run under the SQL Server Agent
Connect to Publisher using sql server login
4. На дистрибьутере выполняем:
Код: Выделить всё
USE [master]
--exec sp_help_agent_profile
exec sp_add_agent_parameter @profile_id = 1, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = <mirror_serv>
exec sp_add_agent_parameter @profile_id = 2, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = <mirror_serv>
exec sp_add_agent_parameter @profile_id = 9, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = <mirror_serv>
Distribution Agent: Run under the SQL Server Agent
Connect to Subscriber using sql server login
6. Создать необходимые индексы на реплике.
Создать пользователей и выделить права.
Манипуляции с зеркалом:
1. При переключении ролей реплика работает.
2. При отключении вторичного сервера, реплика приостанавливается, журнал транзакций на принципале растет. Рекомендуется удалить зеркало.
3. При переключении ролей и удалении зеркалирования, если был удален сервер, на котором делался пункт 3 (New Publicaton) и в качестве принципала выступает бывший вторичный сервер, репликация ломается: она считает паблишером именно тот сервер, где делался пункт 3 (New Publicaton). Дальнейшие рассуждения не тестировались. Чтобы не настраивать репликацию заново, можно попробовать на субскрайбе удалить текущий паблишер и настроить новый, указав на текущий принципал.
Добавление новых статей:
1. exec sp_helppublication @publication = <publ_name>
Проверяем флаги Immediate_sync и Allow_anonymous.
При Immediate_sync = 1 добавление новой статьи приводит к созданию полного снимка а не только этой статьи. Чтобы этого избежать выполняем (порядок важен):
Код: Выделить всё
EXEC sp_changepublication @publication = <publ_name>,
@property = N'allow_anonymous',
@value = 'false'
GO
EXEC sp_changepublication @publication = <publ_name>,
@property = N'immediate_sync',
@value = 'false'
GO
Внимание: если не выполнить шаг 1 и флаги будут стоять в true, то запуск snapshot agent'а приведет к созданию полного снимка.
3. После отработки snapshot agent'а можно вернуть флаги в изначальное состояние (хотя не знаю зачем это делать) (порядок важен):
Код: Выделить всё
EXEC sp_changepublication @publication = <publ_name>,
@property = N'immediate_sync',
@value = 'true'
GO
EXEC sp_changepublication @publication = <publ_name>,
@property = N'allow_anonymous',
@value = 'true'
GO
http://dbasimple.blogspot.com/2012/06/step-by-step.html
https://blog.pythian.com/how-to-configu ... -failover/
http://www.sqlservercentral.com/scripts ... ion/70508/
http://ansqldba.blogspot.com/2012/02/ad ... sting.html