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


Как инициализировать подписку вручную (программирование репликации на языке Transact-SQL)

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

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

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

Подписки можно инициализированы вручную с помощью хранимых процедур репликации.

Ручная инициализация подписки по запросу на публикацию транзакций

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

  2. На издателе в базе данных публикации выполните хранимую процедуру sp_addsubscription. Задайте параметры @publication, @subscriber, укажите имя базы данных подписчика, содержащей публикуемые данные, в параметре @destination_db, значение pull в параметре @subscription_type, а также значение replication support only в параметре @sync_type. Дополнительные сведения см. в разделе Как создавать подписки по запросу (программирование репликации на языке Transact-SQL).

  3. Выполните процедуру sp_addpullsubscription на подписчике. Сведения об обновлении подписок см. в разделе Как создать обновляемую подписку на публикацию транзакций (программирование репликации на языке Transact-SQL).

  4. Выполните процедуру sp_addpullsubscription_agent на подписчике. Дополнительные сведения см. в разделе Как создавать подписки по запросу (программирование репликации на языке Transact-SQL).

  5. Запустите агент распространителя, чтобы передать объекты репликации и загрузить последние изменения с издателя. Дополнительные сведения см. в разделе Как синхронизировать подписку по запросу (программирование репликации).

Ручная инициализация принудительной подписки на публикацию транзакций

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

  2. На издателе в базе данных публикации выполните хранимую процедуру sp_addsubscription. Укажите имя базы данных подписчика, содержащей публикуемые данные, в параметре @destination_db, значение push в параметре @subscription_type и значение replication support only в параметре @sync_type. Сведения об обновлении подписок см. в разделе Как создать обновляемую подписку на публикацию транзакций (программирование репликации на языке Transact-SQL).

  3. На издателе в базе данных публикации выполните хранимую процедуру sp_addpushsubscription_agent. Дополнительные сведения см. в разделе Как создавать принудительные подписки (программирование репликации Transact-SQL).

  4. Запустите агент распространителя, чтобы передать объекты репликации и загрузить последние изменения с издателя. Дополнительные сведения см. в разделе Как синхронизировать принудительную подписку (программирование репликации).

Ручная инициализация подписки по запросу на публикацию слиянием

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

  2. Выполните процедуру sp_addmergesubscription на издателе. Укажите значения параметров @publication, @subscriber, @subscriber_db и значение pull в параметре @subscription_type. После этого подписка по запросу будет зарегистрирована.

  3. На подписчике в базе данных, содержащей публикуемые данные, выполните хранимую процедуру sp_addmergepullsubscription. В параметре @sync_type укажите значение none.

  4. Выполните процедуру sp_addmergepullsubscription_agent на подписчике. Дополнительные сведения см. в разделе Как создавать подписки по запросу (программирование репликации на языке Transact-SQL).

  5. Запустите агент слияния, чтобы передать объекты репликации и загрузить последние изменения с издателя. Дополнительные сведения см. в разделе Как синхронизировать подписку по запросу (программирование репликации).

Ручная инициализация принудительной подписки на публикацию слиянием

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

  2. В базе данных публикации на издателе выполните процедуру sp_addmergepushsubscription_agent. Укажите имя базы данных на подписчике, содержащей публикуемые данные, в параметре @subscriber_db, значение push в параметре @subscription_type и значение none в параметре @sync_type.

  3. На издателе в базе данных публикации выполните хранимую процедуру sp_addmergepushsubscription_agent. Дополнительные сведения см. в разделе Как создавать принудительные подписки (программирование репликации Transact-SQL).

  4. Запустите агент слияния, чтобы передать объекты репликации и загрузить последние изменения с издателя. Дополнительные сведения см. в разделе Как синхронизировать принудительную подписку (программирование репликации).