sp_resyncmergesubscription (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

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

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

  • [ @publication = ] 'publication'
    Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.

  • [ @subscriber = ] 'subscriber'
    Имя подписчика. Аргумент subscriber имеет тип sysname и значение по умолчанию NULL. Значение NULL допустимо, если хранимая процедура выполняется на подписчике. Если хранимая процедура выполняется на издателе, то надо указать подписчик.

  • [ @subscriber_db = ] 'subscriber_db'
    Имя базы данных подписки. Аргумент subscription_db имеет тип sysname и значение по умолчанию NULL. Значение NULL допустимо, если хранимая процедура выполняется на подписчике в базе данных подписки. Если хранимая процедура выполняется на издателе, то надо указать подписчик.

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

    Значение

    Описание

    0

    Синхронизация начинается с момента формирования исходного моментального снимка. Этот аргумент является самым ресурсоемким, так как все изменения с момента формирования исходного моментального снимка заново применяются к подписчику.

    1

    Синхронизация начинается с момента проведения последней успешной проверки. Все новые или неоконченные поколения, созданные со времени проведения последней успешной проверки, заново применяются к подписчику.

    2

    Синхронизация начинается с даты, заданной в аргументе resync_date_str. Все новые или незаконченные поколения, созданные после этой даты, заново применяются к подписчику.

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

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

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

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

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

Разрешения

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