Share via


Procedura: Amministrazione di una topologia peer-to-peer (programmazione Transact-SQL della replica)

L'amministrazione di una topologia peer-to-peer è simile all'amministrazione di una tipica topologia di replica transazionale, sebbene diverse aree richiedano speciali considerazioni. La differenza principale nell'amministrazione di una topologia peer-to-peer consiste nella necessità di mettere il sistema in stato di inattività in caso di determinate modifiche. Mettere in stato di inattività un sistema significa interrompere le attività sulle tabelle pubblicate in tutti i nodi e verificare che ogni nodo abbia ricevuto tutte le modifiche dagli altri nodi. Per ulteriori informazioni, vedere Procedura: Come mettere una topologia di replica in stato di inattività (programmazione Transact-SQL della replica). Per informazioni sull'aggiunta di un nodo a una topologia esistente, vedere Procedura: Configurazione della replica transazionale peer-to-peer (programmazione Transact-SQL della replica).

Per aggiungere un articolo a una configurazione esistente

  1. Mettere in stato di inattività il sistema.

  2. Interrompere l'agente di distribuzione in ciascun nodo nella topologia. Per ulteriori informazioni, vedere Concetti di base relativi ai file eseguibili dell'agente di replica o Procedura: Avvio e interruzione di un agente di replica (SQL Server Management Studio).

  3. Eseguire l'istruzione CREATE TABLE per aggiungere la tabella nuova a ogni nodo nella topologia.

  4. Effettuare manualmente la copia bulk dei dati per la nuova tabella in tutti i nodi utilizzando l'utilità bcp.

  5. Eseguiresp_addarticle per creare il nuovo articolo in ogni nodo nella topologia. Per ulteriori informazioni, vedere Procedura: Definizione di un articolo (programmazione Transact-SQL della replica).

    Nota

    Dopo l'esecuzione di sp_addarticle, la replica aggiunge automaticamente l'articolo alle sottoscrizioni nella topologia.

  6. Riavviare gli agenti di distribuzione in ciascun nodo nella topologia.

Per apportare le modifiche dello schema nel database di pubblicazione

  1. Mettere in stato di inattività il sistema.

  2. Eseguire le istruzioni DLL (Data Definition Language) per modificare lo schema delle tabelle pubblicate. Per ulteriori informazioni sulle modifiche dello schema supportate, vedere Modifiche allo schema nei database di pubblicazione.

  3. Prima di riprendere l'attività nelle tabelle pubblicate, mettere di nuovo il sistema in stato di inattività. Ciò garantisce che le modifiche dello schema siano ricevute da tutti i nodi prima che venga eseguita la replica di nuove modifiche dei dati.

Esempio

Nell'esempio seguente è illustrato come aggiungere un nuovo articolo di tabella a una topologia di replica peer-to-peer esistente con due nodi.

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

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