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


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

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

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

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

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

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

Важное примечаниеВажно!

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

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

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

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