Procédure : configurer la réplication transactionnelle d'égal à égal (SQL Server Management Studio)

Cette rubrique aborde la création d'une topologie de réplication transactionnelle d'égal à égal avec trois nœuds ainsi que l'ajout d'un nœud à la topologie existante. La procédure est d'abord présentée dans les grandes lignes, après quoi chaque étape est décrite en détail :

  • La topologie initiale comprend le serveur A, le serveur B et le server C. Pour les besoins de l'exemple, il est supposé qu'aucune activité n'est réalisée sur les bases de données des homologues. Pour créer la topologie :
    1. Configurez la distribution sur le serveur A, le serveur B et le server C.
      Vous pouvez utiliser un serveur de distribution local ou distant. Si vous utilisez un serveur de distribution distant, il est recommandé de ne pas utiliser le même pour tous les nœuds dans la mesure où cela représente un point de défaillance unique potentiel. Pour plus d'informations sur le serveur de distribution, consultez Configuration de la distribution.
    2. Créez une publication sur le serveur A à l'aide de l'Assistant Nouvelle publication.
    3. Activez la publication pour la réplication d'égal à égal dans la boîte de dialogue Propriétés de la publication - <Publication>.
    4. Initialisez le schéma et les données sur le serveur B et le serveur C soit manuellement, soit en restaurant la base de données du serveur A sur le serveur B et le serveur C. Le schéma doit être identique sur tous les nœuds.
    5. Ajoutez le serveur B et le serveur C à la topologie à l'aide de l'Assistant Configurer la topologie d'égal à égal. L'ajout des serveurs crée une publication sur chaque serveur et crée des abonnements aux publications présentes sur les autres serveurs de la topologie.
      Si les tables publiées comportent des colonnes d'identité, vous devez réattribuer une valeur de départ aux plages d'identité des tables du serveur B et du serveur C.
  • Après la création de la topologie, le serveur D est ajouté. Pour l'ajout d'un nœud à la topologie existante, il est supposé qu'il n'existe aucune activité et le temps d'arrêt du système doit être le plus bref possible. Pour ajouter un nœud à une topologie existante :
    1. Configurez la distribution sur le serveur D.
    2. Initialisez le schéma et les données sur le serveur D en restaurant la base de données du serveur A sur le serveur D.
    3. Ajoutez le serveur D à la topologie à l'aide de l'Assistant Configurer la topologie d'égal à égal. À ce stade, l'ajout du serveur D crée une publication sur le serveur D et crée des abonnement entre le serveur A et le serveur D.
      Si les tables publiées comportent des colonnes d'identité, vous devez réattribuer une valeur de départ aux plages d'identité des tables sur le serveur D.
      Le serveur D peut désormais envoyer des modifications à tous les serveurs et les recevoir mais toutes les modifications doivent transiter par le serveur A, qui est connecté au serveur B et au serveur C. Pour ajouter des abonnements entre le serveur D et les autres nœuds, passez à l'étape 4. L'ajout d'abonnements n'est pas obligatoire mais vous disposez ainsi d'une plus grande tolérance de panne qu'avec une seule connexion entre le serveur A et le serveur D.
    4. Suspendez la topologie, qui revient à arrêter toute modification et à synchroniser tous les serveurs.
    5. Ajoutez des abonnements entre le serveur D et les autres nœuds à l'aide de l'Assistant Configurer la topologie d'égal à égal.

Création d'une topologie de réplication d'égal à égal

Les procédures suivantes illustre la création d'une topologie d'égal à égal comportant trois nœuds.

ms152536.note(fr-fr,SQL.90).gifRemarque :
Vérifiez que Microsoft SQL Server Agent est en cours d'exécution sur chaque nœud et que l'Agent de lecture du journal et l'Agent de distribution sont démarrés après la configuration de la topologie. Pour plus d'informations sur SQL Server Agent, consultez Démarrage de l'Agent SQL Server ; pour plus d'informations sur le démarrage et l'arrêt des Agents, consultez Procédure : démarrer et arrêter un Agent de réplication (SQL Server Management Studio).

Pour configurer la distribution sur chaque nœud

  1. Dans Microsoft SQL Server Management Studio, connectez-vous au serveur A (ce processus de configuration doit être répété pour le serveur B et le serveur C).

  2. Développez le nœud du serveur, cliquez avec le bouton droit sur le dossier Réplication folder puis cliquez sur Configurer la distribution.

  3. Dans la page Serveur de distribution de l'Assistant Configurer la distribution, sélectionnez un serveur de distribution.

    Pour utiliser un serveur de distribution local, sélectionnez '<NomServeur>' agit comme son propre serveur de distribution ; SQL Server crée une base de données de distribution et un journal. Pour utiliser un serveur de distribution distant, sélectionnez l'option Utiliser le serveur suivant comme serveur de distribution, puis sélectionnez un serveur. Ce dernier doit déjà être configuré comme un serveur de distribution et le serveur de publication configuré pour utiliser ce serveur de distribution. Pour plus d'informations, consultez Procédure : activer un serveur de publication distant sur un serveur de distribution (SQL Server Management Studio).

    Si vous sélectionnez un serveur de distribution distant, vous devez spécifier un mot de passe dans la page Mot de passe d'administration pour les connexions entre le serveur A et le serveur de distribution. Ce mot de passe doit correspondre à celui indiqué lors de l'activation du serveur A comme serveur de publication sur le serveur de distribution distant.

  4. Dans la page Dossier de captures instantanées, spécifiez un dossier de captures instantanées.

    Ce dernier est un simple répertoire que vous avez désigné comme partage ; Les Agents qui lisent et écrivent dans ce répertoire doivent posséder d'autorisations suffisantes pour y accéder. Ce répertoire stocke les objets dont la réplication a besoin sur le premier nœud ; il n'est pas utilisé par la réplication d'égal à égal sur les autres nœuds mais sa présence est nécessaire pour configurer un serveur de distribution. Pour plus d'informations sur la sécurisation de ce dossier, consultez Sécurisation du dossier de capture instantanée.

  5. Dans la page Base de données de distribution, indiquez un nom pour la base de données.

    La base de données de distribution stocke les transactions, les métadonnées et les données d'historique.

  6. Dans la page Serveurs de publication, vous pouvez autoriser éventuellement d'autres serveurs de publication à utiliser le serveur A comme serveur de distribution distant.

    Si d'autres serveurs de publication sont configurés pour utiliser le serveur A comme serveur de distribution distant, vous devez spécifier un mot de passe dans la page Mot de passe du serveur de distribution pour les connexions établies par le serveur de publication au serveur de distribution.

  7. Dans la page Actions de l'Assistant, créez éventuellement un script des paramètres de configuration. Pour plus d'informations, consultez Création de scripts de réplication.

Pour créer une publication sur le premier nœud

  1. Connectez-vous au serveur A dans SQL Server Management Studio puis développez le nœud du serveur.

  2. Développez le dossier Réplication puis cliquez avec le bouton droit sur le dossier Publications locales.

  3. Cliquez sur Nouvelle publication.

  4. Dans la page Base de données de publication de l'Assistant Nouvelle publication, sélectionnez la base de données que vous souhaitez publier.

  5. Dans la page Type de publication, sélectionnez Publication transactionnelle.

  6. Dans la page Articles, sélectionnez les objets de base de données à publier.

    Cliquez sur Propriétés de l'article pour afficher et modifier les propriétés de l'article. Les propriétés suivantes ne peuvent pas être modifiées :

    • Nom de l'objet de destination
    • Propriétaire de l'objet de destination
    • Les options Format de remise <ACTION> (ACTION représentant INSERT, UPDATE ou DELETE) ne peuvent avoir la valeur Instruction <ACTION> ou Instruction <ACTION> sans liste de colonnes.
  7. Les filtres ne peuvent pas être définis dans la page Filtrer les lignes de la table ; le filtrage des publications d'égal à égal n'est pas pris en charge.

  8. Dans la page Agent de capture instantanée, désactivez Créer une capture instantanée immédiatement.

  9. Dans la page Sécurité de l'Agent, spécifiez des informations d'identification pour l'Agent de capture instantanée et l'Agent de lecture du journal.

    Pour plus d'informations sur les autorisations requises par chaque Agent, consultez Modèle de sécurité de l'Agent de réplication et Méthodes préconisées en matière de sécurité de réplication.

  10. Dans la page Actions de l'Assistant, créez éventuellement un script de la publication. Pour plus d'informations, consultez Création de scripts de réplication.

  11. Dans la page Terminer l'Assistant, spécifiez un nom pour la publication. Les noms des publications doivent être identiques dans toute la topologie afin que l'Assistant Configurer la topologie d'égal à égal puisse les utiliser lorsqu'il crée un publication sur chaque nœud.

Pour activer la publication pour la réplication d'égal à égal

  1. Développez le dossier Réplication sur le serveur A puis développez le dossier Publications locales.

  2. Cliquez avec le bouton droit sur la publication que vous avez créée puis cliquez sur Propriétés.

  3. Dans la page Options d'abonnement de la boîte de dialogue Propriétés de la publication - <Publication>, sélectionnez la valeur True pour la propriété Autoriser les abonnements d'égal à égal.

  4. Cliquez sur OK.

Pour initialiser le schéma et les données sur chaque nœud

  • Les homologues peuvent être initialisés de l'une des façons suivantes :

    • Manuellement. Copiez le schéma et les données du serveur A vers le serveur B et le serveur C à l'aide de Integration Services (SSIS), de scripts ou d'une autre méthode. Vérifiez que le schéma et les données du serveur B et du serveur C sont identiques à ceux du serveur A avant de configurer ces serveurs comme des homologues.
    • En restaurant une sauvegarde de la base de données de publication du serveur A sur le serveur B et le serveur C. Pour plus d'informations sur la sauvegarde et la restauration des bases de données, consultez Sauvegarde et restauration de bases de données dans SQL Server.
      ms152536.note(fr-fr,SQL.90).gifImportant :
      Lorsque vous restaurez la base de données, ne spécifiez pas l'option KEEP_REPLICATION (pour Transact-SQL) ou l'option Conserver les paramètres de réplication (pour SQL Server Management Studio). La réplication configurera la base de données comme il se doit lorsque vous exécuterez l'Assistant Configurer la topologie d'égal à égal.
      Dans la mesure où une sauvegarde contient l'intégralité d'une base de données, chaque base de données d'un homologue contient une copie complète de la base de données de publication lors de son initialisation. La sauvegarde inclut : les tables non spécifiées en tant qu'articles de la publication et toutes les données, même si des filtres de ligne et de colonne sont définis pour une table. C'est à l'administrateur ou à l'application que revient la tâche de supprimer tous les objets ou données inutiles après la restauration de la sauvegarde. Lors des synchronisations suivantes, les modifications de données sont uniquement répliquées si elles s'appliquent aux tables spécifiées comme articles.

Pour ajouter des nœuds à la topologie au cours de la configuration initiale

  1. Cliquez avec le bouton droit sur la publication que vous avez créée sur le serveur A, puis cliquez sur Configurer la topologie d'égal à égal. Il est parfois nécessaire d'actualiser le nœud de la publication pour voir l'option Configurer la topologie d'égal à égal.

  2. Dans la page Publication de l'Assistant Configurer la topologie d'égal à égal, la publication créée sur le serveur A sera sélectionnée.

  3. Dans la page Homologues, ajoutez le serveur B puis répétez la procédure pour le serveur C :

    1. Cliquez sur Ajouter SQL Server.
    2. Connectez-vous au serveur B dans la boîte de dialogue Se connecter au serveur. Le serveur B est désormais affiché dans la colonne Instance du serveur homologue.
    3. Sélectionnez la base de données sur le serveur B dans le menu Base de données d'homologues.
    ms152536.note(fr-fr,SQL.90).gifRemarque :
    Le serveur A sera également affiché mais comme il est déjà configuré, n'activez pas la case à cocher du serveur A.
  4. Dans la page Sécurité de l'Agent de lecture du journal, spécifiez des informations d'identification pour l'Agent de lecture du journal sur chaque nœud.

    Pour plus d'informations sur les autorisations requises par l'Agent de lecture du journal, consultez Modèle de sécurité de l'Agent de réplication et Méthodes préconisées en matière de sécurité de réplication.

  5. Dans la page Sécurité de l'Agent de distribution, spécifiez des informations d'identification pour les Agents de distribution chargés des abonnements sur chaque nœud.

    L'Assistant Configurer la topologie d'égal à égal crée des abonnements envoyés (l'Agent de distribution s'exécute sur le serveur de distribution), avec un agent indépendant pour chaque abonnement. Dans la mesure où chaque nœud d'une topologie à trois nœuds possède un abonnement pour les deux autres nœuds, deux Agents de distribution s'exécutent sur chaque serveur de distribution.

    Pour plus d'informations sur les autorisations requises par l'Agent de distribution, consultez Modèle de sécurité de l'Agent de réplication et Méthodes préconisées en matière de sécurité de réplication.

  6. Dans la page Initialisation d'un nouvel homologue, sélectionnez J'ai créé la base de données d'homologues manuellement ou j'ai restauré une sauvegarde de la base de données de publication d'origine qui n'a pas été modifiée depuis la sauvegarde.

  7. Terminez l'Assistant. Dans la page Génération de la topologie d'égal à égal, un avertissement signale l'existence d'un Lecteur de journal sur le serveur A. Il s'agit d'un message d'information qui ne nécessite aucune action.

  8. Si les tables publiées comportent des colonnes d'identité, après la restauration, la plage d'identité que vous avez assignée aux tables sur le serveur A sera également utilisée dans les tables du serveur B et du serveur C. Vous devez utiliser DBCC CHECKIDENT pour réattribuer des valeurs de départ aux tables du serveur B et du serveur C afin de garantir l'utilisation d'une plage différente pour chacune d'elles.

    Pour plus d'informations sur la gestion des plages d'identité, consultez la section « Affectation de plages pour la gestion de plages d'identité manuelle » de Réplication de colonnes d'identité.

Ajout d'un nœud à une topologie existante

La série de procédures suivante montre comment ajouter un nouveau nœud à une topologie existante par étapes :

  • L'étape 1, couverte par les trois premières procédures, consiste à connecter partiellement le serveur D à la topologie en créant des abonnements entre le serveur A et le serveur D. De cette façon, il est possible de continuer à apporter des modifications sur le serveur A, le serveur B et le serveur C. Quant aux modifications sur le serveur D, elles peuvent commencer dès que les abonnements ont été créés entre le serveur A et le serveur D.
  • L'étape 2, couverte par les deux dernières procédures, consiste à connecter complètement le serveur D à la topologie en créant des abonnements entre le serveur B et le serveur D et entre le serveur C et le serveur D. Pour cette étape, vous devez suspendre le système.
    L'étape 2 n'est pas indispensable mais vous bénéficiez ainsi d'une tolérance de panne plus grande qu'avec une seule connexion entre le serveur A et le serveur D.
ms152536.note(fr-fr,SQL.90).gifRemarque :
Vérifiez que SQL Server Agent est en cours d'exécution sur chaque nœud et que l'Agent de lecture du journal et l'Agent de distribution sont démarrés après la configuration de la topologie. Pour plus d'informations sur le démarrage de SQL Server Agent, consultez Démarrage de l'Agent SQL Server ; pour plus d'informations sur le démarrage des Agents de réplication, consultez Procédure : démarrer et arrêter un Agent de réplication (SQL Server Management Studio).

Pour configurer la distribution du nouveau nœud

  • Reportez-vous à la procédure de la section précédente.

Pour initialiser le nouveau nœud

  • Sur le serveur D, restaurez une sauvegarde récente de la base de données de publication du serveur A. Vous pouvez également utiliser une sauvegarde du serveur B ou du serveur C mais ce serveur et cette base de données doivent être sélectionnés dans la page Publication de l'Assistant Configurer la topologie d'égal à égal lors de l'ajout du serveur D.

Pour ajouter le nouveau nœud à la topologie (en créant des abonnements entre les serveurs A et D)

  1. Cliquez avec le bouton droit sur la publication que vous avez créée sur le serveur A, puis cliquez sur Configurer la topologie d'égal à égal.

  2. Dans la page Publication de l'Assistant Configurer la topologie d'égal à égal, la publication créée sur le serveur A sera sélectionnée.

  3. Dans la page Homologues, ajoutez le serveur D :

    1. Cliquez sur Ajouter SQL Server.
    2. Connectez-vous au serveur D dans la boîte de dialogue Se connecter au serveur. Le serveur D est désormais affiché dans la colonne Instance du serveur homologue.
    3. Sélectionnez la base de données sur le serveur D dans le menu Base de données d'homologues.
    ms152536.note(fr-fr,SQL.90).gifRemarque :
    Le serveur A sera également affiché mais comme il est déjà configuré, n'activez pas la case à cocher du serveur A.
  4. Dans la page Sécurité de l'Agent de lecture du journal, spécifiez des informations d'identification pour l'Agent de lecture du journal sur le serveur D.

  5. Dans la page Sécurité de l'Agent de distribution, spécifiez des informations d'identification pour les Agents de distribution sur le serveur A et le serveur D.

  6. Dans la page Initialisation d'un nouvel homologue, sélectionnez J'ai restauré une sauvegarde de la base de données de publication d'origine, et la base de données de publication a été modifiée après la sauvegarde.

    Si vous sélectionnez cette option, toute modification non incluse dans la sauvegarde du serveur A sera transmise à la base de données restaurée sur le serveur D. Lorsque vous avez activé la publication pour la réplication d'égal à égal, la propriété de la publication allow_initialize_from_backup a été affectée de la valeur True. La réplication a immédiatement démarré pour effectuer un suivi des modifications dans la base de données de publication sur le serveur A afin de pouvoir mettre à jour les autres homologues après une restauration.

  7. Cliquez sur le bouton Parcourir pour accéder à la sauvegarde utilisée et la réplication lira le numéro de séquence d'enregistrement dans la sauvegarde. Toutes les modifications apportées à la base de données de publication du serveur A avec un numéro de séquence d'enregistrement plus élevé seront remises au serveur D.

  8. Terminez l'Assistant.

  9. Pour toutes les table publiées comportant des plages d'identité, la plage d'identité assignée à chaque table sur le serveur A est également utilisée sur le serveur D. Si vous décidez de ne pas suspendre le système et connecter complètement tous les nœuds, affectez la plage appropriée pour chaque table sur le serveur D en procédant comme décrit ci-dessous. Si vous connectez entièrement tous les nœuds, vous pouvez affecter des plages après avoir suspendu le système :

    1. Exécutez sp_requestpeerresponse (Transact-SQL) sur le serveur D et récupérez le paramètre de sortie @request_id.
    2. Par défaut, l'Agent de distribution est configuré pour s'exécuter en continu, par conséquent des jetons devraient être automatiquement envoyés à tous les nœuds. Si l'Agent de distribution ne s'exécute pas en mode continu, exécutez l'Agent. Pour plus d'informations, consultez Programming Replication Agent Executables ou Procédure : démarrer et arrêter un Agent de réplication (SQL Server Management Studio).
    3. Exécutez sp_helppeerresponses (Transact-SQL), en fournissant la valeur de @request_id extraite à l'étape b. Attendez que tous les nœuds signalent la réception de la demande de l'homologue.
    4. Utilisez DBCC CHECKIDENT pour réattribuer une valeur de départ à chaque table sur le serveur D et vous assurer qu'une plage d'identité appropriée est utilisée.

Pour suspendre la topologie

  1. Arrêtez toute activité sur les tables publiées dans la topologie d'égal à égal.

  2. Exécutez sp_requestpeerresponse (Transact-SQL) sur la base de données du serveur A, du serveur B, du serveur C et du serveur D et récupérez le paramètre de sortie @request_id.

  3. Par défaut, l'Agent de distribution est configuré pour s'exécuter en continu, par conséquent des jetons devraient être automatiquement envoyés à tous les nœuds. Si l'Agent de distribution ne s'exécute pas en mode continu, exécutez l'Agent. Pour plus d'informations, consultez Programming Replication Agent Executables ou Procédure : démarrer et arrêter un Agent de réplication (SQL Server Management Studio).

  4. Exécutez sp_helppeerresponses (Transact-SQL), en fournissant la valeur de @request_id extraite à l'étape 2. Attendez que tous les nœuds signalent la réception de la demande de l'homologue.

  5. Attribuez de nouvelles plages d'identité, le cas échéant. Vous pouvez désormais connecter complètement la topologie en ajoutant le reste des abonnements.

Pour créer des abonnements supplémentaires pour le nouveau nœud

  1. Cliquez avec le bouton droit sur la publication que vous avez créée sur le serveur A, puis cliquez sur Configurer la topologie d'égal à égal.

  2. Dans la page Publication de l'Assistant Configurer la topologie d'égal à égal, la publication créée sur le serveur A sera sélectionnée.

  3. Dans la page Homologues, ajoutez le serveur B puis répétez la procédure pour le serveur C et le serveur D :

    1. Cliquez sur Ajouter SQL Server.
    2. Connectez-vous au serveur B dans la boîte de dialogue Se connecter au serveur. Le serveur B est désormais affiché dans la colonne Instance du serveur homologue.
    3. Sélectionnez la base de données sur le serveur B dans le menu Base de données d'homologues.
    ms152536.note(fr-fr,SQL.90).gifRemarque :
    Le serveur A sera également affiché mais comme il est déjà configuré, n'activez pas la case à cocher du serveur A.
  4. Dans la page Sécurité de l'Agent de lecture du journal, spécifiez des informations d'identification pour l'Agent de lecture du journal sur le serveur B, le serveur C et le serveur D.

  5. Dans la page Sécurité de l'Agent de distribution, spécifiez des informations d'identification pour les Agents de distribution sur le serveur A, le serveur B, le serveur C et le serveur D.

  6. Dans la page Initialisation d'un nouvel homologue, sélectionnez J'ai créé la base de données d'homologues manuellement ou j'ai restauré une sauvegarde de la base de données de publication d'origine qui n'a pas été modifiée depuis la sauvegarde. Tous les nœuds disposent déjà des données. L'activation de cette option garantit l'existence de relations d'abonnements correctes entre chaque nœud.

  7. Terminez l'Assistant.

Voir aussi

Concepts

Réplication transactionnelle d'égal à égal
Présentation des Agents de réplication

Aide et Informations

Assistance sur SQL Server 2005