Administrar uma topologia Ponto a Ponto (Programação Transact-SQL de replicação)
Aplica-se: SQL Server
A administração de uma topologia ponto a ponto é semelhante à administração de uma topologia de replicação transacional comum, porém, há algumas áreas com considerações especiais. A diferença principal na administração da topologia ponto a ponto é que algumas alterações exigem que o sistema seja confirmado. Confirmar um sistema inclui interromper as atividades em tabelas publicadas em todos os nós e assegurar que todos eles tenham recebido todas as alterações de todos os demais nós. Para obter mais informações, confira Como confirmar uma topologia de replicação (Programação Transact-SQL de replicação).
Observação
Em uma topologia ponto a ponto, o distribuidor não pode usar uma versão anterior do SQL Server que um assinante pull.
Para adicionar um artigo a uma configuração existente
Confirme o sistema.
Pare o Distribution Agent em cada nó na topologia. Para mais informações, consulte Conceitos Executáveis do Agente de Replicação ou Iniciar e Parar um Agente de Replicação (SQL Server Management Studio).
Execute a instrução CREATE TABLE para adicionar a nova tabela em cada nó na topologia.
Copie manualmente os dados em massa da nova tabela em todos os nós usando a utilidade bcp.
Execute sp_addarticle para criar o novo artigo em cada nó na topologia. Para obter mais informações, consulte Define an Article.
Observação
Depois que sp_addarticle é executado, a replicação adiciona automaticamente o artigo às assinaturas na topologia.
Reinicialize os Distribution Agents em cada nó na topologia.
Para efetuar alterações de esquema em um banco de dados de publicação
Confirme o sistema.
Execute as instruções de linguagem de definição de dados (DDL) para modificar o esquema das tabelas publicadas. Para obter mais informações sobre alterações de esquema com suporte, consulte Fazer alterações de esquema em bancos de dados de publicação.
Antes de retomar a atividade nas tabelas publicadas, confirme o sistema novamente. Isto garante que as alterações de esquema foram recebidas por todos os nós antes que novas alterações de dados sejam replicadas.
Exemplo
O exemplo a seguir demonstra como adicionar um novo artigo de tabela em uma topologia de replicação ponto a ponto 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