sp_changemergepublication (Transact-SQL)
Область применения: SQL Server
Изменяет свойства публикации слиянием. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_changemergepublication
[ @publication = ] N'publication'
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
Аргументы
[ @publication = ] N'publication'
Имя публикации. @publication — sysname без значения по умолчанию.
[ @property = ] N'property'
Свойство, изменяемое для данной публикации. @property — sysname, и может быть одним из значений, перечисленных в следующей таблице.
[ @value = ] N'value'
Новое значение заданного свойства. @value — nvarchar(255) с значением по умолчаниюNULL
.
, и может быть одним из значений, перечисленных в следующей таблице.
В данной таблице описаны свойства публикации, доступные для изменения, а также ограничения на значения этих свойств.
Свойство | Значение | Описание |
---|---|---|
allow_anonymous |
true |
Анонимные подписки разрешены. |
false |
Анонимные подписки не допускаются. | |
allow_partition_realignment |
true |
Операции удаления отправляются на подписчик для отражения результатов изменений секции путем удаления данных, которые больше не являются частью секции подписчика. Это поведение принимается по умолчанию. |
false |
Данные из старой секции остаются на подписчике, где изменения, внесенные в эти данные на издателе, не реплицируются на этот подписчик. Вместо этого изменения в подписчике реплицируются на издатель. Такой метод применяется для сохранения в подписке данных из старой секции, чтобы обеспечить доступ к архивным данным. | |
allow_pull |
true |
Подписки по запросу на данную публикацию разрешены. |
false |
Подписки на вытягивание не разрешены для данной публикации. | |
allow_push |
true |
Принудительные подписки на данную публикацию разрешены. |
false |
Для данной публикации не разрешены push-подписки. | |
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. | |
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 (10.0.x) |
90RTM |
SQL Server 2005 (9.x) | |
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 Примечание. Если вы хотите вернуться к использованию 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 бит с значением по умолчанию0
.
0
указывает, что изменение публикации не отменяет моментальный снимок. Если хранимая процедура определяет, что изменение требует создания нового моментального снимка, возникает ошибка и изменения не выполняются.1
указывает, что изменение публикации может привести к недопустимой моментальному снимку. Если существуют существующие подписки, требующие нового моментального снимка, укажите разрешение на создание существующего моментального снимка как устаревшего и для создания нового моментального снимка.
Дополнительные сведения см. в разделе "Примечания " для свойств, которые при изменении требуют создания нового моментального снимка.
[ @force_reinit_subscription = ] force_reinit_subscription
Подтверждает, что действие, выполняемое данной хранимой процедурой, может сделать необходимой повторную инициализацию существующих подписок. @force_reinit_subscription бит с значением по умолчанию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 [AdventureWorks2022]
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