Как управлять секциями для публикации слиянием с параметризованными фильтрами (программирование репликации на языке Transact-SQL)
Параметризованные фильтры строк могут быть использованы для формирования неперекрывающихся секций. Такие секции могут быть ограничены таким образом, чтобы каждая данная секция предоставлялась только одной подписке. В таком случае, чем больше число подписчиков, тем большее число секций потребуется, а это, в свою очередь, приведет к необходимости создания такого же числа секционированных моментальных снимков. Дополнительные сведения см. в разделе Параметризованные фильтры строк. Программный перебор существующих секций с помощью хранимых процедур репликации позволяет повысить управляемость публикаций с параметризованными фильтрами. Кроме того, секции можно создавать и удалять. Для существующей секции доступны следующие сведения:
Метод фильтрации секции (при помощи функций SUSER_SNAME (Transact-SQL) или HOST_NAME (Transact-SQL)).
Имя задания, которым формируется секционированный моментальный снимок.
Время последнего запуска задания секционированного снимка.
Если вторая часть снимка, состоящего из двух частей, может быть сформирована по запросу в момент инициализации новой подписки, то приведенные ниже процедуры позволят выполнить предварительное формирование снимка в подходящее время и управлять его формированием. Дополнительные сведения см. в разделе Моментальные снимки для публикаций слиянием с параметризованными фильтрами.
Примечание |
---|
Если публикация имеет параметризованные фильтры, позволяющие получать подписки с неперекрывающимися секциями, то при необходимости повторного создания подписки в случае ее утраты необходимо: удалить секцию, которая была на нее подписана, создать заново подписку, а затем снова создать секцию. При формировании сценария публикации репликация формирует сценарии создания для существующих секций подписчика. Дополнительные сведения см. в разделе Создание сценариев репликации. |
Просмотр информации о существующих секциях
- В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_helpmergepartition (Transact-SQL)). Укажите имя публикации в параметре @publication. Укажите в параметрах @suser_sname или @host_name возврат данных на основе одного критерия фильтрации (необязательно).
Определение новой секции и формирование нового секционированного снимка
В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_addmergepartition (Transact-SQL)). Укажите в параметре @publication имя публикации, а также параметризованное значение определения секции в одном из следующих параметров:
@suser_sname — если параметризованный фильтр определен значением, возвращенным SUSER_SNAME (Transact-SQL);
@host_name — если параметризованный фильтр определен значением, возвращенным HOST_NAME (Transact-SQL).
Создайте и инициализируйте параметризованный снимок для новой секции. Дополнительные сведения см. в разделе Как создать моментальный снимок в публикации слиянием с параметризованными фильтрами (программирование репликации на языке Transact-SQL).
Удаление секции
В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_dropmergepartition (Transact-SQL)). Укажите в параметре @publication имя публикации, а также параметризованное значение определения секции в одном из следующих параметров:
@suser_sname — если параметризованный фильтр определен значением, возвращенным SUSER_SNAME (Transact-SQL);
@host_name — если параметризованный фильтр определен значением, возвращенным HOST_NAME (Transact-SQL).
При этом также будет удалено задание моментального снимка и все файлы снимка для этой секции.
См. также