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
Connectez-vous au serveur de publication dans SQL Server Management Studio, puis développez le nœud du serveur.
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.
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 :
Dans la page Base de données de publication, sélectionnez
AdventureWorks2022
, puis Suivant.Dans la page Type de publication, sélectionnez Publication transactionnelle, puis Suivant :
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.
Dans la page Filtrer les lignes de la table, sélectionnez Ajouter.
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
Sélectionnez OK, puis Suivant.
Cochez la case Créer un instantané immédiatement et garder ce dernier disponible pour l’initialisation des abonnements et sélectionnez Suivant :
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.
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.
Dans la page Terminer l’Assistant, entrez AdvWorksProductTrans dans la zone Nom de la publication, puis sélectionnez Terminer :
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.
Afficher l’état d’une génération d’instantané
Connectez-vous au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis le dossier Réplication.
Dans le dossier Publications locales, cliquez avec le bouton droit sur AdvWorksProductTrans, puis sélectionnez Afficher l’état de l’Agent d’instantané :
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)
Connectez-vous au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis le dossier Réplication.
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.
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
Connectez-vous au serveur de publication dans SQL Server Management Studio, développez le nœud du serveur, puis le dossier Réplication.
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 :
Dans la page Publication, sélectionnez AdvWorksProductTrans, puis sélectionnez Suivant :
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.
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.
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 :
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.
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é
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électionnez OK pour fermer la boîte de dialogue Nouvelle connexion.
Afficher l'état de synchronisation de l'abonnement
Connectez-vous à la publication dans SQL Server Management Studio. Développez le nœud du serveur, puis développez le dossier Réplication.
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 :
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 :
- Initialiser un abonnement avec un instantané
- Créer un abonnement par émission (push)
- S’abonner à des publications
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é.
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 :
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é.
Pour plus d’informations, consultez l’article suivant :
- Mesurer la latence et valider les connexions pour la réplication transactionnelle
- Rechercher des erreurs avec les agents de réplication transactionnelle