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

Администрирование одноранговой топологии напоминает администрирование обычное топологии репликации транзакций, оно имеет некоторые специфические особенности. Главное отличие состоит в том, что при администрировании одноранговой топологии некоторые изменения требуют замораживания системы. Замораживание системы предполагает прекращение операций с опубликованными таблицами на всех узлах и проверку того, что каждый узел получил все изменения со всех других узлов. Дополнительные сведения см. в разделе Как заморозить топологию репликации (программирование репликации на языке Transact-SQL). Сведения о том, как добавить узел к существующей топологии, см. в разделе Как настроить одноранговую репликацию транзакций (программирование репликации на языке Transact-SQL).

Добавление статьи к существующей конфигурации

  1. Заморозьте систему.

  2. Остановите агент распространителя в каждом узле топологии. Дополнительные сведения см. в разделе Основные понятия об исполняемых объектах агента репликации или Как запустить и остановить агент репликации (среда SQL Server Management Studio).

  3. При помощи инструкции CREATE TABLE добавьте новую таблицу в каждом из узлов топологии.

  4. Вручную выполните массовое копирование данных во всех узлах при помощи программы bcp.

  5. При помощи хранимой процедуры sp_addarticle создайте новую статью в каждом узле топологии. Дополнительные сведения см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).

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

    После завершения хранимой процедуры sp_addarticle репликация автоматически добавит статью в подписки топологии.

  6. Перезапустите агент распространителя в каждом из узлов топологии.

Внесение изменений в схему баз данных публикации

  1. Заморозьте систему.

  2. При помощи инструкций языка DDL внесите изменения в схему опубликованных таблиц. Дополнительные сведения о поддерживаемых изменениях схем см. в разделе Внесение изменений схем в базы данных публикаций.

  3. Прежде чем возобновить работу с опубликованными таблицами, вновь заморозьте систему. Это необходимо для того, чтобы изменения в схеме были приняты всеми узлами до репликации новых изменений данных.

Пример

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

-- Create the new table at both nodes.
CREATE TABLE AdventureWorks2008R2.dbo.ProductTest (column1 int, Column2 int);
CREATE TABLE AdventureWorks2008R2Replica.dbo.ProductTest (column1 int, Column2 int);
GO
REM Bulk insert data into both the publication and subscription databases.
REM The BCP format depends on the snapshot format (native or character).
REM Execute at the command prompt.

bcp AdventureWorks2008R2..ProductTest in NewTable.bcp �T �SMYPUBLISHER n/c
bcp AdventureWorks2008R2Replica..ProductTest in NewTable.bcp �T �SMYPUBLISHER n/c
--- Add the article to the publication.
DECLARE @publication AS sysname;
DECLARE @newtable AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @newtable = N'ProductTest';

USE AdventureWorks2008R2

EXEC sp_addarticle 
  @publication = @publication,
  @article = @newtable,
  @source_table = @newtable,
  @destination_table = @newtable,
  @force_invalidate_snapshot = 0;
GO