sp_changemergepublication (Transact-SQL)

Применимо к:SQL Server

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

Соглашения о синтаксисе 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' Свойство, которое необходимо изменить для данной публикации. свойство имеет значение sysname и может быть одним из значений, перечисленных в следующей таблице.

[ @value = ] 'value' Новое значение для указанного свойства. valuenvarchar(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 Конфликтующие записи хранятся на издателе.
подписчик Конфликтующие записи хранятся на подписчике, вызвавшем конфликт. Не поддерживается для подписчиков SQL Server Compact*.*
оба Конфликтующие записи хранятся одновременно на издателе и на подписчике.
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 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Этот аргумент устарел и поддерживается только для обратной совместимости скриптов. Сведения о публикации больше не могут быть добавлены в Active Directory.
false Удаляет сведения о публикации из службы Active Directory.
replicate_ddl 1 Производится репликация инструкций DDL, выполняемых на издателе.
0 Репликация инструкций DDL не производится.
Хранения Это значение типа 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 собственный код или

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

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

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

Обходной путь для этого сценария — установить состояние Неактивно, изменить use_partition_groups, а затем задать состояние активно.
true Публикация использует предварительно вычисляемые секции.
false Публикация не использует предварительно вычисляемые секции.
validate_subscriber_info Содержит список функций для получения сведений о подписчике. Затем проверяет условие динамического фильтра, которое используется для подписчика при проверке правильности секционирования данных.
web_synchronization_url Значение по умолчанию URL-адреса в Интернете для веб-синхронизации.
NULL (по умолчанию) Возвращает список поддерживаемых значений свойства.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot Подтверждает, что действие, выполняемое этой хранимой процедурой, может сделать недействительным существующий моментальный снимок. force_invalidate_snapshotбит, значение по умолчанию — 0.

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

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

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

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

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

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

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

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

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

Комментарии

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

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

  • 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

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

  • 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 [AdventureWorks2012]
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.

См. также:

Просмотр и изменение свойств публикации
Изменение свойств публикации и статьи
sp_addmergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Хранимые процедуры репликации (Transact-SQL)