У меня есть производственная база данных, т.е. где есть постоянные обновления, и я настроил ее для публикации на другом сервере с помощью репликации транзакций.
При настройке репликации транзакций я делал следующее:
Проблема с этим подходом заключается в планировании простоев, необходимости приостанавливать все различные запланированные по времени задачи, которые мы запускаем, и закрывать доступ к нашим различным приложениям, которые зависят от этой базы данных.
Могу ли я просто настроить репликацию транзакций, не отключая доступ к базе данных публикации, и база данных подписчика будет правильно работать? т.е. все ли операторы DML поставлены в очередь на издателе, и как только подписчик готов, они выбираются и выполняются?
Простой ответ - нет ... Вам не нужно отключать доступ к системе и т. Д. Вот почему и как это работает ... Когда вы настраиваете репликацию, издатель создает моментальный снимок данных в тот самый момент, когда вы создаете публикация. Существует также программа чтения журнала, работающая одновременно с репликацией транзакций, которая перехватывает КАЖДУЮ транзакцию с момента создания последнего моментального снимка. Итак ... когда создается подписчик, это в основном двухэтапный процесс:
Шаг 1: Снимок применяется к подписчику, который создает схему и данные в базе данных SUbscriber.
Шаг 2: Затем применяются транзакции с момента создания моментального снимка, чтобы подписчик обновил базу данных подписчика с последними данными.
В общем, нет, вам не нужно делать все те другие действия, которые вы делаете, чтобы создать нового подписчика.
Позвольте мне знать, если вам нужно что-нибудь еще.
Спасибо!
-VM