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


sp_changemergepublication (Transact-SQL)

Изменяет свойства публикации слиянием. Эта хранимая процедура выполняется на издателе в базе данных публикации.

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

Синтаксис

sp_changemergepublication [ @publication= ] 'publication'
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Аргументы

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

  • [ @property=\] 'property'
    Свойство, изменяемое для данной публикации. Аргумент property имеет тип sysname и может принимать одно из значений, перечисленных в следующей таблице.

  • [ @value=\] 'value'
    Новое значение указанного свойства. Аргумент value имеет тип nvarchar(255) и может принимать одно из значений, перечисленных в следующей таблице.

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

    Свойство

    Значение

    Описание

    allow_anonymous

    true

    Анонимные подписки разрешены.

    false

    Анонимные подписки запрещены.

    allow_partition_realignment

    true

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

    false

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

    allow_pull

    true

    Подписки по запросу для данной публикации разрешены.

    false

    Подписки по запросу для данной публикации не разрешены.

    allow_push

    true

    Принудительные подписки для данной публикации разрешены.

    false

    Принудительные подписки для данной публикации не разрешены.

    allow_subscriber_initiated_snapshot

    true

    Подписчик может инициировать процесс получения моментального снимка.

    false

    Подписчик не может инициировать процесс получения моментального снимка.

    allow_subscription_copy

    true

    Можно копировать базы данных подписки, подписанные на эту публикацию.

    false

    Нельзя копировать базы данных подписки, подписанные на эту публикацию.

    allow_synctoalternate

    true

    Разрешает альтернативному участнику синхронизации выполнять синхронизацию с этим издателем.

    false

    Не разрешает альтернативному участнику синхронизации выполнять синхронизацию с этим издателем.

    allow_web_synchronization

    true

    Подписки можно синхронизировать через HTTPS.

    false

    Подписки нельзя синхронизировать через HTTPS.

    alt_snapshot_folder

    Указывает местоположение альтернативной папки для моментального снимка.

    automatic_reinitialization_policy

    1

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

    0

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

    centralized_conflicts

    true

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

    false

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

    compress_snapshot

    true

    Моментальный снимок в альтернативной папке снимков сжимается в формате CAB. Сжатие моментального снимка в папке моментальных снимков по умолчанию невозможно. Изменение этого свойства потребует создания нового моментального снимка.

    false

    По умолчанию моментальный снимок не сжимается. Изменение этого свойства потребует создания нового моментального снимка.

    conflict_logging

    publisher

    Конфликтующие записи хранятся на издателе.

    subscriber

    Конфликтующие записи хранятся на подписчике, вызвавшем конфликт. Не поддерживается для подписчиков SQL Server Compact 3.5 с пакетом обновления 1 (SP1).

    both

    Конфликтующие записи хранятся одновременно на издателе и на подписчике.

    conflict_retention

    Значение типа int, указывающее срок хранения (в днях) данных конфликтов. Если аргумент conflict_retention имеет значение 0, очистка данных конфликта не требуется.

    description

    Описание публикации.

    dynamic_filters

    true

    Публикация фильтруется на основе динамического предложения.

    false

    Публикация не фильтруется динамически.

    enabled_for_internet

    true

    Публикация через Интернет включена. Для передачи файлов моментальных снимков на подписчик можно использовать протокол FTP. Файлы синхронизации для публикации размещаются в каталоге «C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp».

    false

    Публикация через Интернет не разрешена.

    ftp_address

    Сетевой адрес службы FTP для распространителя. Указывает место хранения файлов моментальных снимков публикации.

    ftp_login

    Имя пользователя для подключения к службе FTP.

    ftp_password

    Пароль пользователя для подключения к службе FTP.

    ftp_port

    Номер порта службы FTP для распространителя. Указывает номер порта TCP узла FTP, на котором хранятся файлы моментальных снимков публикации.

    ftp_subdirectory

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

    generation_leveling_threshold

    int

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

    keep_partition_changes

    true

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

    false

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

    max_concurrent_merge

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

    max_concurrent_dynamic_snapshots

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

    post_snapshot_script

    Задает указатель на расположение .sql-файла. Агент распространителя или агент слияния выполняют заключительный сценарий создания моментального снимка после того, как сценарии и данные всех реплицируемых объектов используются во время начальной синхронизации. Изменение этого свойства потребует создания нового моментального снимка.

    pre_snapshot_script

    Задает указатель на расположение .sql-файла. Агент слияния выполняет предварительный сценарий моментального снимка до выполнения сценариев реплицируемых объектов, если моментальный снимок делается для подписчика. Изменение этого свойства потребует создания нового моментального снимка.

    publication_compatibility_level

    100RTM

    SQL Server 2008

    90RTM

    SQL Server 2005

    80SP3

    SQL Server 2000 с пакетом обновления 3 (SP3).

    80SP2

    SQL Server 2000 с пакетом обновления 2 (SP2).

    80SP1

    SQL Server 2000 с пакетом обновления 2 (SP2).

    80RTM

    SQL Server 2000

    70 SP4

    SQL Server 7.0 с пакетом обновления 4 (SP4).

    70SP3

    SQL Server 7.0 с пакетом обновления 3 (SP3).

    70SP2

    SQL Server 7.0 с пакетом обновления 2 (SP2).

    70SP1

    SQL Server 7.0 с пакетом обновления 1 (SP1).

    70RTM

    SQL Server 7.0

    publish_to_activedirectory

    true

    Этот аргумент является устаревшим и поддерживается только для обратной совместимости. Сведения о публикации больше не могут быть добавлены в Active Directory.

    false

    Удаляет сведения о публикации из службы Active Directory.

    replicate_ddl

    1

    Производится репликация инструкций DDL, выполняемых на издателе.

    0

    Репликация инструкций DDL не производится.

    retention

    Значение типа int, представляющее число единиц времени retention_period_unit, в течение которых хранятся изменения для данной публикации. Если подписка не синхронизирована в течение срока хранения, а ожидающие обработки изменения, которые были бы получены, удалены операцией очистки на стороне распространителя, срок действия подписки истекает, и подписка должна быть создана заново. Максимальный допустимый срок хранения равен числу дней между 31 декабря 9999 года и текущей датой.

    ПримечаниеПримечание
    Срок хранения для публикации слиянием предусматривает наличие 24-часового льготного срока для согласования работы подписчиков в разных часовых поясах.

    retention_period_unit

    day

    Срок хранения указан в днях.

    week

    Срок хранения указан в неделях.

    month

    Срок хранения указан в месяцах.

    year

    Срок хранения указан в годах.

    snapshot_in_defaultfolder

    true

    Файлы моментального снимка сохранены в папке для моментальных снимков по умолчанию.

    false

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

    snapshot_ready

    true

    Моментальный снимок доступен для публикации.

    false

    Моментальный снимок для публикации не доступен.

    status

    active

    Публикация находится в активном состоянии.

    inactive

    Публикация находится в неактивном состоянии.

    sync_mode

    native или

    bcp native

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

    character

    или bcp character

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

    use_partition_groups

    ПримечаниеПримечание
    После использования свойства use_partition_groups, если нужно восстановить использование процесса setupbelongs и установить use_partition_groups=false в changemergearticle, это может быть неправильно отражено после получения моментального снимка. Триггеры, формируемые моментальным снимком, совместимы с группами секций. Такую ситуацию можно обойти следующим образом: установить состояние в «Неактивный», изменить свойство use_partition_groups, а затем установить состояние в «Активный».

    true

    Публикация использует предварительно вычисляемые секции.

    false

    Публикация не использует предварительно вычисляемые секции.

    validate_subscriber_info

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

    web_synchronization_url

    Значение по умолчанию URL-адреса в Интернете для веб-синхронизации.

    NULL (по умолчанию)

    Возвращает список поддерживаемых значений для свойства property.

  • [ @force\_invalidate\_snapshot = ] force_invalidate_snapshot
    Подтверждает, что действие, выполненное этой хранимой процедурой, может сделать существующий моментальный снимок недействительным. Аргумент force_invalidate_snapshot имеет тип bit и значение по умолчанию 0.

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

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

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

  • [ @force\_reinit\_subscription = ] force_reinit_subscription
    Подтверждает, что действие, выполняемое данной хранимой процедурой, может сделать необходимой повторную инициализацию текущих подписок. Аргумент force_reinit_subscription имеет тип bit и значение по умолчанию 0.

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

    Значение 1 указывает, что изменения в публикации вызывают повторную инициализацию подписок, и дает разрешение произвести повторную инициализацию.

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

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

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

Замечания

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

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

  • alt_snapshot_folder

  • compress_snapshot

  • dynamic_filters

  • ftp_address

  • ftp_login

  • ftp_password

  • ftp_port

  • ftp_subdirectory

  • post_snapshot_script

  • publication_compatibility_level (только для 80SP3)

  • pre_snapshot_script

  • snapshot_in_defaultfolder

  • sync_mode

  • use_partition_groups

Изменение этих свойств потребует повторной инициализации существующих подписок. Необходимо указать значение 1 для параметра force_reinit_subscription.

  • dynamic_filters

  • validate_subscriber_info

Чтобы внести список объектов публикации в Active Directory с помощью аргумента publish_to_active_directory, объект SQL Server должен уже быть создан в Active Directory.

Пример

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Разрешения

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