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


Инициализация подписки на публикацию слиянием без моментального снимка

ПримечаниеПримечание

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.

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

Когда это возможно, подписки следует инициализировать с помощью моментального снимка. Не рекомендуется инициализировать подписки без моментального снимка, особенно в следующих случаях.

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

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

  • Если необходимо заново инициализировать подписку.

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

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

  1. Добавьте столбец типа uniqueidentifier с атрибутами столбца rowguid и NOT NULL в таблицы, которые будут участвовать в репликации слиянием.

  2. Выполните резервное копирование базы данных, которая будет использована для инициализации подписчика.

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

  4. Восстановите на подписчике резервную копию или скопируйте данные, используя другой метод. Если восстанавливается резервная копия, не указывайте параметр KEEP_REPLICATION. Это параметр предназначен для сохранения параметров настройки репликации во время восстановления. Резервная копия поступает от издателя, поэтому требуется удалить из базы данных параметры настроек издателя. Восстановленная база данных будет иметь необходимые параметры настройки подписчика после начальной синхронизации.

  5. Создайте подписку с указанием того, что она будет инициализирована вручную.

    ПримечаниеПримечание

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

    Дополнительные сведения см. в разделах:

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