sp_changemergepublication (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 с пакетом обновления 2 (SP2).
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 [AdventureWorks2008R2]
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.
См. также