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 Suspension d’une topologie de réplication (programmation Transact-SQL de la réplication).
Notes
Dans une topologie d’égal à égal, le serveur de distribution ne peut pas utiliser une version antérieure de SQL Server qu’un abonné pull.
Pour ajouter un article à une configuration existante
Suspendez le système.
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).
Exécutez l'instruction CREATE TABLE pour ajouter la nouvelle table à chaque nœud de la topologie.
Copiez manuellement en bloc les données de la nouvelle table sur tous les nœuds à l'aide de l' utilitaire bcp.
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.
Notes
Après l'exécution de sp_addarticle , la réplication ajoute automatiquement l'article aux abonnements de la topologie.
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
Suspendez le système.
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.
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 AdventureWorks2012.dbo.ProductTest (column1 int, Column2 int);
CREATE TABLE AdventureWorks2012Replica.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 AdventureWorks2012..ProductTest in NewTable.bcp -T -SMYPUBLISHER n/c
bcp AdventureWorks2012Replica..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 AdventureWorks2012
EXEC sp_addarticle
@publication = @publication,
@article = @newtable,
@source_table = @newtable,
@destination_table = @newtable,
@force_invalidate_snapshot = 0;
GO
Voir aussi
FAQ sur l’administration de la réplication
Sauvegarder et restaurer des bases de données SQL Server
Peer-to-Peer Transactional Replication