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


Как управлять секциями для публикации слиянием с параметризованными фильтрами (программирование репликации на языке Transact-SQL)

Параметризованные фильтры строк могут быть использованы для формирования неперекрывающихся секций. Такие секции могут быть ограничены таким образом, чтобы каждая данная секция предоставлялась только одной подписке. В таком случае, чем больше число подписчиков, тем большее число секций потребуется, а это, в свою очередь, приведет к необходимости создания такого же числа секционированных моментальных снимков. Дополнительные сведения см. в разделе Параметризованные фильтры строк. Программный перебор существующих секций с помощью хранимых процедур репликации позволяет повысить управляемость публикаций с параметризованными фильтрами. Кроме того, секции можно создавать и удалять. Для существующей секции доступны следующие сведения:

  • Метод фильтрации секции (при помощи функций SUSER_SNAME (Transact-SQL) или HOST_NAME (Transact-SQL)).

  • Имя задания, которым формируется секционированный моментальный снимок.

  • Время последнего запуска задания секционированного снимка.

Если вторая часть снимка, состоящего из двух частей, может быть сформирована по запросу в момент инициализации новой подписки, то приведенные ниже процедуры позволят выполнить предварительное формирование снимка в подходящее время и управлять его формированием. Дополнительные сведения см. в разделе Моментальные снимки для публикаций слиянием с параметризованными фильтрами.

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

Если публикация имеет параметризованные фильтры, позволяющие получать подписки с неперекрывающимися секциями, то при необходимости повторного создания подписки в случае ее утраты необходимо: удалить секцию, которая была на нее подписана, создать заново подписку, а затем снова создать секцию. При формировании сценария публикации репликация формирует сценарии создания для существующих секций подписчика. Дополнительные сведения см. в разделе Создание сценариев репликации.

Просмотр информации о существующих секциях

  • В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_helpmergepartition (Transact-SQL)). Укажите имя публикации в параметре @publication. Укажите в параметрах @suser_sname или @host_name возврат данных на основе одного критерия фильтрации (необязательно).

Определение новой секции и формирование нового секционированного снимка

  1. В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_addmergepartition (Transact-SQL)). Укажите в параметре @publication имя публикации, а также параметризованное значение определения секции в одном из следующих параметров:

    • @suser_sname — если параметризованный фильтр определен значением, возвращенным SUSER_SNAME (Transact-SQL);

    • @host_name — если параметризованный фильтр определен значением, возвращенным HOST_NAME (Transact-SQL).

  2. Создайте и инициализируйте параметризованный снимок для новой секции. Дополнительные сведения см. в разделе Как создать моментальный снимок в публикации слиянием с параметризованными фильтрами (программирование репликации на языке Transact-SQL).

Удаление секции

  • В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_dropmergepartition (Transact-SQL)). Укажите в параметре @publication имя публикации, а также параметризованное значение определения секции в одном из следующих параметров:

    • @suser_sname — если параметризованный фильтр определен значением, возвращенным SUSER_SNAME (Transact-SQL);

    • @host_name — если параметризованный фильтр определен значением, возвращенным HOST_NAME (Transact-SQL).

    При этом также будет удалено задание моментального снимка и все файлы снимка для этой секции.