Administrera en peer-to-peer-topologi (Transact-SQL-programmering för replikering)

Gäller för:SQL Server

Att administrera en peer-to-peer-topologi liknar att administrera en typisk transaktionell replikeringstopologi, men det finns ett antal områden med särskilda överväganden. Den främsta skillnaden vid administration av en peer-to-peer-topologi är att vissa ändringar kräver att systemet tas ur drift. Att försätta ett system i viloläge innebär att stoppa all aktivitet på de publicerade tabellerna på alla noder och säkerställa att varje nod har tagit emot alla ändringar från alla andra noder. Mer information finns i Quiesce a Replication Topology (Replication Transact-SQL Programming).

Note

I en peer-to-peer-topologi kan distributören inte använda en tidigare version av SQL Server än en pull-prenumerant.

Så här lägger du till en artikel i en befintlig konfiguration

  1. Stäng ner systemet.

  2. Stoppa Distribution Agent vid varje nod i topologin. Mer information finns i Begrepp för körbara replikeringsagenter eller Starta och stoppa en replikeringsagent (SQL Server Management Studio).

  3. Kör -instruktionen CREATE TABLE för att lägga till den nya tabellen vid varje nod i topologin.

  4. Masskopiera data för den nya tabellen manuellt på alla noder med hjälp av bcp-verktyget.

  5. Kör sp_addarticle för att skapa den nya artikeln på varje nod i topologin. Mer information finns i Definiera en artikel.

    Note

    När sp_addarticle har körts lägger replikeringen automatiskt till artikeln i prenumerationerna i topologin.

  6. Starta om distributionsagenterna vid varje nod i topologin.

Så här gör du schemaändringar i en publikationsdatabas

  1. Stäng ned systemet.

  2. Kör DDL-uttryck (Data Definition Language) för att ändra schemat för publicerade tabeller. Mer information om schemaändringar som stöds finns i Göra schemaändringar i publikationsdatabaser.

  3. Innan du återupptar aktivitet på publicerade tabeller ska du sätta systemet i viloläge igen. Detta säkerställer att schemaändringar har tagits emot av alla noder innan nya dataändringar replikeras.

Example

I följande exempel visas hur du lägger till en ny tabellartikel i en befintlig peer-to-peer-replikeringstopologi som har två noder.

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