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