Добавление и удаление статей в существующих публикациях
Возможно добавлять и удалять статьи после создания публикации. Можно добавить статьи в любое время, но действия, необходимые для удаления статей, зависят от типа репликации и времени удаления статьи.
Добавление статей
Добавление статьи включает следующие операции: добавление статьи в публикацию; создание нового моментального снимка публикации; синхронизация подписки для применения схемы и данных для новой статьи.
Примечание |
---|
Если при добавлении статьи в публикацию слиянием, существующая статья зависит от новой статьи, то необходимо задать порядок обработки для обеих статей с помощью параметра @processing_order процедур sp_addmergearticle и sp_changemergearticle. Рассмотрим следующий сценарий: необходимо опубликовать таблицу без опубликования функции, на которую ссылается эта таблица. Если функция не будет опубликована, то таблица не сможет быть создана на подписчике. При добавлении функции к публикации: задайте значение 1 для параметра @processing_order процедуры sp_addmergearticle и значение 2 для параметра @processing_order процедуры sp_changemergearticle, указав имя таблицы для параметра @article. Этот порядок обработки гарантирует создание функции на подписчике до создания таблицы, которая зависит от нее. Можно использовать различные числа для каждой статьи при условии, что число для функции меньше числа для таблицы. |
Добавьте одну или несколько статей с помощью следующих методов:
MicrosoftSQL Server Management Studio: Как добавить и удалить статьи в публикации (среда SQL Server Management Studio)
Программирование репликации на языке Transact-SQL: Как определить статью (программирование репликации на языке Transact-SQL)
Программирование объектов RMO: Как определить статью (программирование объектов RMO)
После добавления статьи в публикацию необходимо создать новый моментальный снимок для публикации (и все секции, если это публикация слиянием с параметризованными фильтрами). Затем агент распространителя или агент слияния копирует схему и данные для новой статьи на подписчик (он не инициализирует заново всю публикацию).
Создание моментального снимка
SQL Server Management Studio: Как создать и применить исходный моментальный снимок (среда SQL Server Management Studio)
Программирование репликации с помощью Transact-SQL. Как создать исходный моментальный снимок (программирование репликации на языке Transact-SQL)
Программирование RMO. Как создать исходный моментальный снимок (программирование объектов RMO)
Создание моментального снимка для публикации слиянием с параметризованными фильтрами
SQL Server Management Studio: Как создать моментальный снимок для публикации слиянием с параметризованными фильтрами (среда SQL Server Management Studio)
Программирование репликации на языке Transact-SQL: Как создать моментальный снимок в публикации слиянием с параметризованными фильтрами (программирование репликации на языке Transact-SQL)
После создания моментального снимка синхронизируйте подписку, чтобы скопировать схему и данные для новой статьи.
Синхронизация принудительной подписки
SQL Server Management Studio: Как синхронизировать принудительную подписку (среда SQL Server Management Studio)
Программирование репликации на языке Transact-SQL: Как синхронизировать принудительную подписку (программирование репликации)
Программирование объектов RMO: Как синхронизировать принудительную подписку (программирование объектов RMO)
Синхронизация подписки по запросу
SQL Server Management Studio: Как синхронизировать подписку по запросу (среда SQL Server Management Studio)
Программирование репликации на языке Transact-SQL: Как синхронизировать подписку по запросу (программирование репликации)
Программирование объектов RMO: Как синхронизировать подписку по запросу (программирование объектов RMO)
Удаление статей
Статьи могут быть удалены из публикации в любое время, но следует принять во внимание следующие аспекты:
Удаление статьи из публикации не удаляет объект из базы данных публикации или соответствующий объект из базы данных подписки. Используйте DROP <объект> для удаления этих объектов при необходимости. При удалении статьи, которая связана с другими опубликованными статьями с помощью ограничений внешних ключей, рекомендуется удалить таблицу на подписчике вручную или выполнив сценарий по требованию: укажите сценарий, который содержит соответствующие инструкции DROP <объект>. Дополнительные сведения см. в разделе Как выполнять сценарии во время синхронизации (программирование репликации на языке Transact-SQL).
Для публикации слиянием с уровнем совместимости 90RTM и выше возможно удаление статей в любое время, но требуется новый моментальный снимок. Дополнительно:
Если статья является родительской статьей в фильтре соединения или в отношении логической записи, сначала нужно удалить отношения, и это требует повторной инициализации.
Если статья содержит последний параметризованный фильтр в публикации, подписки должны быть повторно инициализированы.
Для публикаций слиянием с уровнем совместимости ниже 90RTM статьи можно удалить без особых размышлений до первоначальной синхронизации подписок. Если статья удалена после синхронизации одной или более подписок, подписки должны быть удалены, заново созданы и синхронизированы. Дополнительные сведения об уровне совместимости см. в подразделе «Уровень совместимости для публикаций слиянием» раздела Использование нескольких версий SQL Server в топологии репликации.
Для публикации моментальных снимков или публикации транзакций статьи можно удалить без особых размышлений до создания подписок. Если статья удалена после создания одной или более подписок, подписки должны быть удалены, заново созданы и синхронизированы. Дополнительные сведения об удалении подписок см. в разделе Подписка на публикации и sp_dropsubscription (Transact-SQL). Хранимая процедура sp_dropsubscription позволяет удалить одну статью из подписки вместо удаления всей подписки.
Удаление статьи из публикации включает удаление статьи и создание нового моментального снимка для публикации. Удаление статьи сделает текущий моментальный снимок недействительным; поэтому должен быть создан новый моментальный снимок.
Удаление статьи из публикации
SQL Server Management Studio: Как добавить и удалить статьи в публикации (среда SQL Server Management Studio)
Программирование репликации на языке Transact-SQL: Как удалить статью (программирование репликации на языке Transact-SQL)
Программирование объектов RMO: Как удалить статью (программирование объектов RMO)
После удаления статьи из публикации необходимо создать новый моментальный снимок для публикации (и все секции, если это публикация слиянием с параметризованными фильтрами).
Создание моментального снимка
SQL Server Management Studio: Как создать и применить исходный моментальный снимок (среда SQL Server Management Studio)
Программирование репликации с помощью Transact-SQL. Как создать исходный моментальный снимок (программирование репликации на языке Transact-SQL)
Программирование RMO. Как создать исходный моментальный снимок (программирование объектов RMO)
Создание моментального снимка для публикации слиянием с параметризованными фильтрами
SQL Server Management Studio: Как создать моментальный снимок для публикации слиянием с параметризованными фильтрами (среда SQL Server Management Studio)
Программирование репликации на языке Transact-SQL: Как создать моментальный снимок в публикации слиянием с параметризованными фильтрами (программирование репликации на языке Transact-SQL)
Как указано выше, в некоторых случаях удаление статьи требует, чтобы подписки были удалены, заново созданы и синхронизированы. Дополнительные сведения см. в разделах Подписка на публикации и Синхронизация данных.