Partager via


Procédure : administrer une topologie d'égal à égal (programmation Transact-SQL de la réplication)

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é sur les tables publiées de tous les nœuds et à vérifier que chaque nœud a reçu toutes les modifications des autres nœuds. Pour plus d'informations, consultez Procédure : suspendre une topologie de réplication (programmation Transact-SQL de la réplication). Pour plus d'informations sur l'ajout d'un nœud à une topologie existante, consultez Procédure : configurer la réplication transactionnelle d'égal à égal (programmation Transact-SQL de la programmation).

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 Procédure : 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 Procédure : définir un article (programmation Transact-SQL de la réplication).

    [!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 Modification du 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 AdventureWorks.dbo.ProductTest (column1 int, Column2 int);
CREATE TABLE AdventureWorksReplica.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 AdventureWorks..ProductTest in NewTable.bcp �T �SMYPUBLISHER n/c
bcp AdventureWorksReplica..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 AdventureWorks

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