Administrer une topologie d’égal à égal (programmation Transact-SQL de la réplication)

S'applique à : SQL Server

L'administration d'une topologie d'égal à égal est semblable à celle d'une topologie de réplication transactionnelle typique, mais plusieurs zones méritent une attention particulière. La principale différence dans l'administration d'une topologie d'égal à égal est que certaines modifications requièrent que le système soit suspendu. Suspendre un système revient à interrompre toute activité des tables publiées dans l’ensemble des nœuds, et à vérifier que chaque nœud a reçu toutes les modifications des autres nœuds. Pour plus d’informations, consultez Suspension d’une topologie de réplication (programmation Transact-SQL de la réplication).

Remarque

Dans une topologie d'égal à égal, le serveur de distribution ne peut pas utiliser une version antérieure de SQL Server par rapport à celle d'un abonné à un abonnement par extraction.

Pour ajouter un article à une configuration existante

  1. Suspendez le système.

  2. Arrêtez l'Agent de distribution à chaque nœud de la topologie. Pour plus d’informations, consultez Concepts des exécutables de l’agent de réplication ou Démarrer et arrêter un Agent de réplication (SQL Server Management Studio).

  3. Exécutez l'instruction CREATE TABLE pour ajouter la nouvelle table à chaque nœud de la topologie.

  4. Copiez manuellement en bloc les données de la nouvelle table sur tous les nœuds à l'aide de l' utilitaire bcp.

  5. Exécutez sp_addarticle pour créer l'article sur chaque nœud de la topologie. Pour plus d’informations, consultez définir un Article.

    Remarque

    Après l'exécution de sp_addarticle , la réplication ajoute automatiquement l'article aux abonnements de la topologie.

  6. Redémarrez les Agents de distribution sur chaque nœud de la topologie.

Pour apporter des modifications de schéma à une base de données de publication

  1. Suspendez le système.

  2. Exécutez les instructions de langage de définition de données (DDL) pour modifier le schéma des tables publiées. Pour plus d’informations sur les modifications de schéma prises en charge, consultez Modifier le schéma dans les bases de données de publication.

  3. Avant de reprendre l'activité sur les tables publiées, suspendez à nouveau le système. Vous garantissez ainsi que les modifications de schéma ont été reçues par tous les nœuds avant que de nouvelles modifications de données ne soient répliquées.

Exemple

L'exemple suivant montre comment ajouter un nouvel article de table à une topologie existante de réplication d'égal à égal et composée de deux nœuds.

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