Administrar uma Topologia peer-to-peer (Programação Transact-SQL da Replicação)

Aplica-se a: SQL Server

Administrar uma topologia peer-to-peer é semelhante a administrar uma topologia típica de replicação transacional, mas existem várias áreas com considerações especiais. A principal diferença na administração de uma topologia peer-to-peer é que algumas alterações exigem que o sistema esteja inativo. Colocar um sistema em quiescência implica parar a atividade nas tabelas publicadas em todos os nós e garantir que cada nó recebeu todas as alterações de todos os outros nós. Para obter mais informações, consulte desativar uma topologia de replicação (replicação Transact-SQL programação).

Note

Numa topologia peer-to-peer, o distribuidor não pode estar a usar uma versão anterior do SQL Server do que um pull subscriber.

Para adicionar um artigo a uma configuração existente

  1. Coloque o sistema em estado inativo.

  2. Interrompa o Agente de Distribuição em cada nó da topologia. Para mais informações, consulte Replication Agent Executables Concepts ou Start and Stop a Replication Agent (SQL Server Management Studio).

  3. Execute a CREATE TABLE instrução para adicionar a nova tabela em cada nó da topologia.

  4. Copie manualmente, em todos os nós, os dados para a nova tabela em massa, utilizando o utilitário bcp.

  5. Execute sp_addarticle para criar o novo artigo em cada nó da topologia. Para obter mais informações, consulte Definição de um artigo.

    Note

    Após sp_addarticle ser executado, a replicação adiciona automaticamente o artigo às subscrições na topologia.

  6. Reinicie os Agentes de Distribuição em cada nó da topologia.

Para fazer alterações de esquema a uma base de dados de publicações

  1. Coloque o sistema em estado inativo.

  2. Executar as instruções da linguagem de definição de dados (DDL) para modificar o esquema das tabelas publicadas. Para mais informações sobre alterações de esquema suportadas, consulte Fazer Alterações de Esquema em Bases de Dados de Publicação.

  3. Antes de retomar a atividade nas tabelas publicadas, desative novamente o sistema. Isto garante que as alterações no esquema foram recebidas por todos os nós antes de quaisquer novas alterações de dados serem replicadas.

Exemplo

O exemplo seguinte demonstra como adicionar um novo artigo de tabela a uma topologia de replicação peer-to-peer existente que tenha dois nós.

-- 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