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


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

Администрирование одноранговой топологии напоминает администрирование обычное топологии репликации транзакций, оно имеет некоторые специфические особенности. Главное отличие состоит в том, что при администрировании одноранговой топологии некоторые изменения требуют замораживаниясистемы. Замораживание системы предполагает прекращение операций с опубликованными таблицами на всех узлах и проверку того, что каждый узел получил все изменения со всех других узлов. Дополнительные сведения см. в статье Заморозить топологию репликации (программирование репликации на языке 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 AdventureWorks2012.dbo.ProductTest (column1 int, Column2 int);
CREATE TABLE AdventureWorks2012Replica.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 AdventureWorks2012..ProductTest in NewTable.bcp -T -SMYPUBLISHER n/c
bcp AdventureWorks2012Replica..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 AdventureWorks2012

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

См. также:

Вопросы и ответы об администрировании репликации
Резервное копирование и восстановление баз данных SQL Server
Peer-to-Peer Transactional Replication