Tutoriel : Configurer la réplication entre deux serveurs intégralement connectés (réplication transactionnelle)

S’applique à :SQL Server

La réplication transactionnelle constitue une bonne solution au problème de transfert de données entre serveurs connectés en permanence. À l’aide de l’Assistant Réplication, vous pouvez aisément configurer et administrer une topologie de réplication.

Ce tutoriel vous explique comment configurer une topologie de réplication transactionnelle dans le cas de serveurs connectés en permanence. Pour plus d’informations sur le fonctionnement de la réplication transactionnelle, consultez Vue d’ensemble de la réplication transactionnelle.

Contenu du didacticiel

Ce didacticiel vous explique comment publier des données d'une base de données sur une autre à l'aide de la réplication transactionnelle.

Dans ce didacticiel, vous apprendrez à :

  • Créer un serveur de publication par le biais de la réplication transactionnelle.
  • Créer un Abonné pour le serveur de publication transactionnelle.
  • Valider l’abonnement et mesurer la latence.

Prérequis

Ce didacticiel est destiné aux utilisateurs qui sont familiers des opérations élémentaires de base de données, mais dont l'expérience en matière de réplication est limitée. Avant de commencer ce tutoriel, vous devez effectuer le Tutoriel : Préparer SQL Server pour la réplication.

Pour suivre ce tutoriel, vous avez besoin de SQL Server, SQL Server Management Studio (SSMS) et une base de données AdventureWorks :

  • Sur le serveur de publication (source), installez :

    • Toute édition de SQL Server, à l’exception de SQL Server Express ou SQL Server Compact. Ces éditions ne peuvent pas constituer des serveurs de publication de réplication.
    • Exemple de base de données AdventureWorks2022 . Pour des raisons de sécurité, les exemples de bases de données ne sont pas installés par défaut.
  • Sur le serveur abonné (destination), installez n’importe quelle édition de SQL Server, à l’exception de SQL Server Compact. SQL Server Compact ne peut pas être un abonné dans la réplication transactionnelle.

  • Installez SQL Server Management Studio.

  • Installez SQL Server 2017 Developer Edition.

  • Téléchargez l’exemple de base de données AdventureWorks. Pour obtenir des instructions sur la restauration d’une base de données dans SSMS, consultez Restauration d’une base de données.

Remarque

  • La réplication n’est pas prise en charge sur les instances de SQL Server qui sont séparées de plus de deux versions. Pour plus d’informations, consultez Supported SQL Server Versions in Replication Topology (Versions de SQL prises en charge dans la topologie de réplication).
  • Dans SQL Server Management Studio, vous devez vous connecter au serveur de publication et à l’abonné à l’aide d’une connexion membre du rôle serveur fixe sysadmin . Pour plus d’informations sur ce rôle, consultez Rôles de niveau serveur.

Durée estimée pour effectuer ce tutoriel : 60 minutes

Configurer le serveur de publication pour la réplication transactionnelle

Dans cette section, vous allez créer une publication transactionnelle à l’aide de SQL Server Management Studio pour publier un sous-ensemble filtré de la table Product dans l’exemple AdventureWorks2022 de base de données. Vous ajoutez également à la liste d'accès à la publication (PAL) le compte de connexion SQL Server utilisée par l'Agent de distribution.

Créer une publication et définir des articles

  1. Connecter au serveur de publication dans SQL Server Management Studio, puis développez le nœud du serveur.

  2. Cliquez avec le bouton droit sur SQL Server Agent et sélectionnez Démarrer. SQL Server Agent doit être en cours d’exécution pour que vous puissiez créer la publication. Si cette étape ne démarre pas l’agent, vous devez le démarrer manuellement à partir du Gestionnaire de configuration SQL Server.

  3. Développez le dossier Réplication, cliquez avec le bouton droit sur le dossier Publications locales, puis sélectionnez Nouvelle publication. Cette étape lance l’Assistant Nouvelle publication :

    Selections for starting the New Publication Wizard

  4. Dans la page Base de données de publication, sélectionnez AdventureWorks2022, puis Suivant.

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

  6. Dans la page Articles, développez le nœud Tables, puis cochez la case Product. Ensuite, développez Product et décochez les cases en regard de ListPrice et StandardCost. Cliquez sur Suivant.

  7. Dans la page Filtrer les lignes de la table, sélectionnez Ajouter.

  8. Dans la boîte de dialogue Ajouter un filtre, sélectionnez la colonne SafetyStockLevel. Sélectionnez la flèche droite pour ajouter la colonne à la clause WHERE de la requête de filtre. Ensuite, entrez le modificateur de la clause WHERE comme suit :

    WHERE [SafetyStockLevel] < 500  
    

  9. Sélectionnez OK, puis Suivant.

  10. Cochez la case Créer un instantané immédiatement et garder ce dernier disponible pour l’initialisation des abonnements et sélectionnez Suivant :

  11. Dans la page Sécurité de l’agent, décochez la case Utiliser les paramètres de sécurité de l’Agent d’instantané.

    Sélectionnez Paramètres de sécurité pour l'Agent d'instantané. Entrez Publisher_Machine_Name>\repl_instantané dans la zone Compte de processus, indiquez< le mot de passe de ce compte, puis sélectionnez OK.

  12. Répétez l’étape précédente pour définir <Publisher_Machine_Name>\repl_logreader comme compte de processus de l’Agent de lecture du journal. Sélectionnez ensuite OK.

  13. Dans la page Terminer l’Assistant, entrez AdvWorksProductTrans dans la zone Nom de la publication, puis sélectionnez Terminer :

  14. Une fois la publication créée, sélectionnez Fermer pour terminer l’Assistant.

Vous pouvez rencontrer l’erreur suivante si SQL Server Agent n’est pas en cours d’exécution quand vous essayez de créer la publication. Cette erreur indique que votre publication a été créée avec succès, mais que l’Agent d’instantané n’a pas pu démarrer. Dans ce cas, vous devez démarrer SQL Server Agent, puis démarrer manuellement l’Agent d’instantané. La section suivante fournit des instructions.

Warning that the Snapshot Agent has failed to start

Afficher l’état d’une génération d’instantané

  1. Connecter au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis développez le Dossier de réplication.

  2. Dans le dossier Publications locales, cliquez avec le bouton droit sur AdvWorksProductTrans, puis sélectionnez Afficher l’état de l’Agent d’instantané :
    Command on the shortcut menu for viewing the Snapshot Agent status

  3. L’état actuel du travail de l’Agent d’instantané pour la publication s’affiche. Vérifiez que le travail d’instantané a bien réussi avant de passer à la section suivante.

Si SQL Server Agent n’était pas en cours d’exécution quand vous avez créé la publication, une mention indique que l’Agent d’instantané n’a jamais été exécuté quand vous vérifiez l’état de l’Agent d’instantané pour la publication. Dans ce cas, sélectionnez Démarrer pour démarrer l’Agent d’instantané :

Si une erreur apparaît ici, consultez Résoudre les erreurs liées à l’Agent d’instantané.

Ajouter la connexion de l'Agent de distribution à la liste d'accès à la publication (PAL)

  1. Connecter au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis développez le Dossier de réplication.

  2. Dans le dossier Publications locales, cliquez avec le bouton droit sur AdvWorksProductTrans, puis sélectionnez Propriétés. La boîte de dialogue Propriétés de la publication apparaît.

    a. Sélectionnez la page Liste d’accès à la publication, puis sélectionnez Ajouter.
    b. Dans la boîte de dialogue Ajouter un accès à la publication, sélectionnez< Publisher_Machine_Name>\repl_distribution, puis sélectionnez OK.

    Selections for adding a login to the publication access list

Pour plus d’informations, consultez Replication Programming Concepts.

Créer un abonnement à la publication transactionnelle

Dans cette section, vous ajoutez un Abonné à la publication que vous avez créée. Ce tutoriel utilise un Abonné distant (NODE2\SQL2016), mais vous pouvez également ajouter un abonnement localement au serveur de publication.

Créer l’abonnement

  1. Connecter au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis développez le Dossier de réplication.

  2. Dans le dossier Publications locales, cliquez avec le bouton droit sur la publication AdvWorksProductTrans, puis sélectionnez Nouveaux abonnements. L’Assistant Nouvel abonnement démarre :

    Selections to start the New Subscription Wizard

  3. Dans la page Publication, sélectionnez AdvWorksProductTrans, puis sélectionnez Suivant :

  4. Dans la page Emplacement de l’Agent de distribution, sélectionnez Exécuter tous les agents sur le serveur de distribution, puis sélectionnez Suivant. Pour plus d’informations sur les abonnements par extraction et par émission de données, consultez S’abonner à des publications.

  5. Dans la page Abonnés, si le nom de l’instance de l’Abonné n’est pas affiché, sélectionnez Ajouter un Abonné, puis sélectionnez Ajouter un Abonné SQL Server dans la liste déroulante. Cette étape ouvre la boîte de dialogue Se connecter au serveur. Entrez le nom de l’instance de l’Abonné, puis sélectionnez Se connecter.

    Une fois l’abonné ajouté, cochez la case en regard du nom de son instance. Ensuite, sélectionnez Nouvelle base de données sous Base de données d’abonnement.

  6. La boîte de dialogue Nouvelle base de données apparaît. Entrez ProductReplica dans la zone Nom de la base de données, sélectionnez OK, puis sélectionnez suivant :

    Entering a name for the subscription database

  7. Dans la page Sécurité de l’Agent de distribution, sélectionnez le bouton représentant des points de suspension (). Entrez Publisher_Machine_Name>\repl_distribution dans la zone Compte de processus, entrez< le mot de passe de ce compte, sélectionnez OK, puis sélectionnez Suivant.

    Distribution account information in the

  8. Sélectionnez Terminer pour accepter les valeurs par défaut des pages restantes et terminer l’Assistant.

Définir des autorisations de base de données sur l'abonné

  1. Connecter à l’abonné dans SQL Server Management Studio. Développez Sécurité, cliquez avec le bouton droit sur Connexions, puis sélectionnez Nouvelle connexion.

    a. Dans la page Général, sous Nom de connexion, sélectionnez Rechercher et ajoutez la connexion pour <Subscriber_Machine_Name>\repl_distribution.

    b. Dans la page Mappages d’utilisateur, accordez l’appartenance db_owner pour la base de données ProductReplica.

    Selections for configuring the login on the subscriber

  2. Sélectionnez OK pour fermer la boîte de dialogue Nouvelle connexion.

Afficher l'état de synchronisation de l'abonnement

  1. Connecter au serveur de publication dans SQL Server Management Studio. Développez le nœud du serveur, puis développez le dossier Réplication.

  2. Dans le dossier Publications locales, développez la publication AdvWorksProductTrans, cliquez avec le bouton droit sur l’abonnement dans la base de données ProductReplica, puis sélectionnez Afficher l’état de synchronisation. L’état de synchronisation de l’abonnement s’affiche :

    Selections for opening the

  3. Si l’abonnement n’apparaît pas sous AdvWorksProductTrans, appuyez sur la touche F5 pour actualiser la liste.

Pour plus d’informations, consultez l’article suivant :

Mesurer la latence de réplication

Dans cette section, vous utilisez les jetons de suivi pour vérifier que les modifications sont bien répliquées sur l’abonné et pour déterminer la latence. La latence est le temps nécessaire pour qu’une modification apportée sur le serveur de publication apparaisse sur l’abonné.

  1. Connecter au serveur de publication dans SQL Server Management Studio. Développez le nœud du serveur, cliquez avec le bouton droit sur le dossier Réplication, puis sélectionnez Lancer le moniteur de réplication :

  2. Développez un groupe de serveurs de publication dans le volet gauche, développez une instance du serveur de publication, puis sélectionnez la publication AdvWorksProductTrans.

    a. Sélectionnez l’onglet Jetons de suivi.
    b. Sélectionnez Insérer un suivi.
    c. Affichez le temps écoulé pour le jeton de suivi dans les colonnes suivantes : Du serveur de publication vers le serveur de distribution, Du serveur de distribution vers l'Abonnéet Latence totale. Une valeur En attente indique que le jeton n’a pas atteint un point spécifié.

    Information for the tracer token

Pour plus d’informations, consultez l’article suivant :

Étapes suivantes

Vous avez correctement configuré votre serveur de publication et votre abonné pour la réplication transactionnelle. Vous pouvez maintenant insérer, mettre à jour ou supprimer des données dans la table Product sur le serveur de publication. Ensuite, vous pouvez interroger la table Product sur l’abonné pour voir les modifications répliquées.

L’article suivant va vous apprendre à configurer la réplication de fusion :