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


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

Область применения: SQL Server

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

Примечание.

В одноранговой топологии распространитель не может использовать более раннюю версию SQL Server, чем подписчик по запросу.

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

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

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

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

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

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

    Примечание.

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

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

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

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

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

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

Пример

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

-- Create the new table at both nodes.
CREATE TABLE AdventureWorks2022.dbo.ProductTest (column1 int, Column2 int);
CREATE TABLE AdventureWorks2022Replica.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 AdventureWorks2022..ProductTest in NewTable.bcp -T -SMYPUBLISHER n/c
bcp AdventureWorks2022Replica..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 AdventureWorks2022;

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