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


sp_resyncmergesubscription (Transact-SQL)

Область применения: SQL Server

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_resyncmergesubscription
    [ [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
    , [ @publication = ] N'publication'
    [ , [ @subscriber = ] N'subscriber' ]
    [ , [ @subscriber_db = ] N'subscriber_db' ]
    , [ @resync_type = ] resync_type
    [ , [ @resync_date_str = ] N'resync_date_str' ]
[ ; ]

Аргументы

[ @publisher = ] N'publisher'

Имя издателя. @publisher — sysname с значением по умолчаниюNULL. Значение допустимо, NULL если хранимая процедура выполняется на издателе. Если хранимая процедура выполняется на подписчике, то надо указать издатель.

[ @publisher_db = ] N'publisher_db'

Имя базы данных публикации. @publisher_db имеет имя sysname с значением по умолчаниюNULL. Значение допустимо, NULL если хранимая процедура выполняется на издателе в базе данных публикации. Если хранимая процедура выполняется на подписчике, то надо указать издатель.

[ @publication = ] N'publication'

Имя публикации. @publication — sysname без значения по умолчанию.

[ @subscriber = ] N'подписчик'

Имя подписчика. @subscriber — sysname с значением по умолчаниюNULL. Допустимое значение NULL , если хранимая процедура выполняется на подписчике. Если хранимая процедура выполняется на издателе, то надо указать подписчик.

[ @subscriber_db = ] N'subscriber_db'

Имя базы данных подписки. @subscriber_db — sysname с значением по умолчаниюNULL. Значение допустимо, NULL если хранимая процедура выполняется на подписчике в базе данных подписки. Если хранимая процедура выполняется на издателе, то надо указать подписчик.

[ @resync_type = ] resync_type

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

значение Описание
0 Синхронизация начинается с момента формирования исходного моментального снимка. Этот параметр является наиболее ресурсоемким, так как все изменения после первоначального моментального снимка повторно применяются к подписчику.
1 Синхронизация начинается с момента проведения последней успешной проверки. Все новые или неоконченные поколения, созданные со времени проведения последней успешной проверки, заново применяются к подписчику.
2 Синхронизация начинается с даты, указанной в resync_date_str. Все новые или незаконченные поколения, созданные после этой даты, заново применяются к подписчику.

[ @resync_date_str = ] N'resync_date_str'

Указывает дату, когда должна начаться повторная синхронизация. @resync_date_str — nvarchar(30) с значением по умолчаниюNULL. Этот параметр используется, если @resync_type является значением 2. Указанная дата преобразуется в эквивалентное значение datetime .

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_resyncmergesubscription используется в репликации слиянием.

Значение 0 параметра @resync_type , которое применяет все изменения после первоначального моментального снимка, может быть ресурсоемким, но, возможно, гораздо меньше полной повторной инициализации. Например, если исходный моментальный снимок был отправлен месяц назад, это значение приведет к повторному применению данных прошедшего месяца. Если начальный моментальный снимок содержал 1 гигабайт (ГБ) данных, но количество изменений в прошлом месяце составило 2 мегабайта (МБ) измененных данных, было бы эффективнее повторно применять данные, чем повторно применять полный моментальный снимок в 1 ГБ.

Разрешения

Могут выполняться sp_resyncmergesubscriptionтолько члены предопределенных ролей сервера sysadmin или db_owner предопределенных ролей базы данных.