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 :

    • N’importe quelle édition de SQL Server, à l’exception de SQL Server Express et 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 d’abonné (destination), installez une édition quelconque de SQL Server, sauf SQL Server Compact. SQL Server Compact ne peut pas être un abonné dans une 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.

Dans SQL Server Management Studio, vous devez vous connecter au serveur de publication et à l’abonné à l’aide d’un identifiant de 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 créez une publication transactionnelle en utilisant SQL Server Management Studio pour publier un sous-ensemble filtré de la table Product de l’exemple de base de données AdventureWorks2022. 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. Connectez-vous 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 :

    Sélections pour démarrer l’Assistant Nouvelle Publication

  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 :

    Page « Type de publication » avec le type de publication sélectionné

  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.

    Page « Articles » avec les articles sélectionnés à publier

  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  
    

    Page « Filtrer les flux de table » et boîte de dialogue « Ajouter un filtre »

  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 :

    Page « Agent d’instantané » avec case à cocher sélectionnée

  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 <nom_ordinateur_serveur_de_publication>\repl_snapshot dans la zone Compte de processus, spécifiez le mot de passe du compte, puis sélectionnez OK.

    Page« Sécurité de l’agent » et boîte de dialogue « Sécurité de l’Agent d’instantané »

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

    Boîte de dialogue « Sécurité de l’Agent de lecture du journal » et page « Sécurité de l’Agent »

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

    Page « Terminer l’Assistant » avec le nom de la publication

  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.

Avertissement indiquant que l’Agent d’instantané n’a pas pu démarrer

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

  1. Connectez-vous au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis le dossier 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é :
    Commande du menu contextuel permettant d’afficher l’état de l’Agent d’instantané

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

Bouton « Démarrer » et modification du message d’état indiquant que l’Agent d’instantané a été exécuté

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. Connectez-vous au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis le dossier 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 à une publication, sélectionnez <nom_ordinateur_serveur_de_publication>\repl_distribution et sélectionnez OK.

    Sélections pour ajouter une connexion à la liste d'accès à la publication

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. Connectez-vous au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis le dossier 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 :

    Sélections pour démarrer l’Assistant Nouvel abonnement

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

    Page « Publication » avec la publication sélectionnée

  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.

    Page « Emplacement de l'Agent de distribution » avec l’option Exécuter tous les agents sur le serveur de distribution sélectionnée

  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.

    Page « Abonnés » avec les sélections pour ajouter un serveur d’abonné

  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 :

    Saisie du nom de la base de données d'abonnement

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

    Informations sur le compte de distribution dans la boîte de dialogue « Sécurité de l'Agent de distribution »

  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. Connectez-vous à 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, puis ajoutez le nom de connexion pour <nom_ordinateur_Abonné>\repl_distribution.

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

    Sélections pour configurer la connexion sur l’abonné

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

Afficher l'état de synchronisation de l'abonnement

  1. Connectez-vous à la 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 :

    Sélections pour ouvrir la boîte de dialogue « Afficher l'état de synchronisation »

  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. Connectez-vous à la 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 :

    Commande « Lancer le moniteur de réplication » du menu contextuel

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

    Informations pour le jeton de suivi

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

Étape suivante