Published on

December 23, 2011

Обработка изменений схемы в репликации SQL Server

Вы когда-нибудь задумывались, возможно ли вносить изменения в схему в репликации SQL Server? Ответ – да! Фактически, репликация SQL Server способна обрабатывать базовые изменения схемы без проблем.

Прежде чем мы углубимся в детали, давайте сначала разберемся, что такое изменения схемы. В SQL Server, операторы DDL (Data Definition Language) используются для создания и изменения структуры объектов базы данных. Это включает такие действия, как добавление или удаление столбцов из таблицы, изменение представлений, процедур, функций и триггеров.

Когда дело доходит до внесения изменений в схему в репликации, это обычно является невмешательством, которое не требует окна обслуживания. Репликация SQL Server поддерживает следующие изменения схемы на опубликованных объектах:

  • ALTER TABLE
  • ALTER TABLE SET LOCK ESCALATION
  • ALTER VIEW
  • ALTER PROCEDURE
  • ALTER FUNCTION
  • ALTER TRIGGER

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

USE MyPublicationDB
GO

ALTER TABLE SalesLT.Customer ADD TestColumn1 varchar(50) NULL

По умолчанию изменение схемы будет распространяться на подписчиков при следующей синхронизации. Однако важно отметить, что вы должны установить свойство публикации @replicate_ddl в значение true. Следует отметить, что изменения схемы, внесенные через графический интерфейс конструктора таблиц в SQL Server Management Studio, могут привести к сбою изменения схемы, так как он пытается удалить и создать таблицу заново.

Аналогично, если вы хотите удалить столбец из опубликованной таблицы, вы можете использовать следующий синтаксис на издателе:

USE MyPublicationDB
GO

ALTER TABLE SalesLT.Customer DROP COLUMN TestColumn1

Как и при добавлении столбца, изменение схемы будет распространяться на подписчиков при следующей синхронизации.

Важно отметить, что в общем случае изменения схемы не требуют повторной инициализации подписок. Однако могут быть некоторые исключения из этого правила. Если вы не уверены, применимы ли эти исключения к вашей ситуации, пожалуйста, обратитесь к разделу “Внесение изменений в схему баз данных публикации” в документации SQL Server для получения дополнительной информации.

Так что, в следующий раз, когда вам понадобится вносить изменения в схему в репликации SQL Server, будьте уверены, что это действительно возможно и может быть сделано без каких-либо серьезных нарушений.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.