Поделиться через


Повторная инициализация подписок

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

  • Подписка явно помечена для повторной инициализации.

  • Выполняется действие, например изменение свойств, требующее повторной инициализации. Дополнительные сведения о действиях, после которых нужно выполнять повторную инициализацию, см. в статье Изменение свойств публикации и статьи.

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

Для репликации слиянием можно выбрать передачу всех изменений данных с подписчика до применения моментального снимка. Любые отложенные изменения схемы с издателя применяются на подписчике, а затем любые обновления, сделанные на подписчике с момента последней синхронизации, распространяются на издатель до повторного применения моментального снимка. Это поведение управляется свойствами upload_first и automatic_reinitialization_policy . Дополнительные сведения см. в разделе Reinitialize a Subscription. Если пометить подписку для повторной инициализации с помощью среды SQL Server Management Studio или монитора репликации, в диалоговом окне Повторная инициализация подписок можно будет указать, что необходимо сначала передать изменения.

Внимание

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

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

Повторная инициализация подписки

Чтобы повторно инициализировать все статьи в подписке, используйте SQL Server Management Studio, хранимые процедуры или объекты управления репликацией (RMO). Чтобы повторно инициализировать отдельные статьи в моментальном снимке и в публикациях транзакций, следует использовать хранимые процедуры. Дополнительные сведения см. в статье Reinitialize a Subscription.