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


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.

     

    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

    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

    ПримечаниеПримечание

    После использования 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 [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)

Основные понятия

Просмотр и изменение свойств публикации

Изменение свойств публикации и статьи