Share via


Tutoriel : Configurer la réplication entre un serveur et des clients mobiles (réplication de fusion)

S’applique à :SQL Server

La réplication de fusion constitue une bonne solution au problème de transfert des données entre un serveur central et des clients mobiles qui ne sont connectés que de façon occasionnelle. Grâce aux Assistants de réplication, vous pouvez aisément configurer et administrer une topologie de réplication de fusion.

Ce didacticiel vous explique comment configurer une topologie de réplication pour des clients mobiles. Pour plus d’informations sur la réplication de fusion, consultez la présentation de la réplication de fusion.

Contenu du didacticiel

Dans ce tutoriel, vous allez découvrir comment utiliser la réplication de fusion pour publier des données issues d’une base de données centrale dans un ou plusieurs comptes d’utilisateurs mobiles, afin que chaque utilisateur obtienne le sous-ensemble de données filtré dont il a besoin.

Dans ce didacticiel, vous apprendrez à :

  • Configurer un serveur de publication pour la réplication de fusion.
  • Ajouter un abonné mobile à la publication de fusion.
  • Synchroniser l’abonnement avec la publication de fusion.

Prérequis

Ce tutoriel est destiné aux utilisateurs qui sont familiers des opérations essentielles de base de données, mais pas de la réplication. 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 un serveur 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 Express ou SQL Server Compact. La publication créée dans ce tutoriel ne prend pas en charge SQL Server Express ou SQL Server Compact.

  • 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 un serveur de publication pour la réplication de fusion

Dans cette section, vous allez créer une publication de fusion à l’aide de SQL Server Management Studio pour publier un sous-ensemble des tables Employee, SalesOrderHeader et SalesOrderDetail dans l’exemple AdventureWorks2022 de base de données. Ces tables sont filtrées avec des filtres de lignes paramétrables pour que chaque abonnement contienne une partition unique des données. Vous ajoutez également la connexion SQL Server utilisée par l’Agent de fusion à la liste d’accès aux publications (PAL).

Créer une publication de fusion 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. Pour démarrer SQL Server Agent, cliquez dessus avec le bouton droit dans l’Explorateur d’objets, puis sélectionnez Démarrer. 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 Publications locales, puis sélectionnez Nouvelle publication. L’Assistant Nouvelle publication démarre :

    Selections to start 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 de fusion, puis Suivant.

  6. Dans la page Types d’abonnés, vérifiez que seul SQL Server 2008 (10.0.x) ou version ultérieure est sélectionné, puis sélectionnez Suivant :

  7. Dans la page Articles, développez le nœud Tables. Sélectionnez les trois tables suivantes : Employee, SalesOrderHeader et SalesOrderDetail. Cliquez sur Suivant.

    Table selections on the

    Remarque

    La table Employee contient une colonne (OrganizationNode) avec le type de données hierarchyid. Ce type de données est pris en charge pour la réplication uniquement dans SQL Server 2017.

    Si vous utilisez une build antérieure à SQL Server 2017, un message s’affiche au bas de l’écran pour vous signaler que l’utilisation de cette colonne dans une réplication bidirectionnelle peut entraîner une perte de données. Pour les besoins de ce tutoriel, vous pouvez ignorer ce message. Toutefois, vous ne devez pas répliquer ce type de données dans un environnement de production, sauf si vous utilisez la build prise en charge.

    Pour plus d’informations sur la réplication du type de données hierarchyid, consultez Utilisation de colonnes hierarchyid dans les tables répliquées.

  8. Dans la page Filtrer les lignes de la table, sélectionnez Ajouter, puis Ajouter un filtre.

  9. Dans la boîte de dialogue Ajouter un filtre, sélectionnez Employee (HumanResources) sous Select the table to filter (Sélectionnez la table à filtrer). Sélectionnez la colonne LoginID, sélectionnez la flèche droite pour ajouter la colonne à la clause WHERE de la requête de filtre, puis modifiez la clause WHERE comme illustré ci-après :

     WHERE [LoginID] = HOST_NAME()  
    

    Sélectionnez Une ligne de cette table ira à un seul abonnement, puis OK.

    Selections for adding a filter

  10. Dans la page Filtrer les lignes de la table, sélectionnez Employee (HumanResources). Ensuite, sélectionnez Ajouter, puis Ajouter une jointure pour étendre le filtre sélectionné.

    a. Dans la boîte de dialogue Ajouter une jointure, sélectionnez Sales.SalesOrderHeader sous Table jointe. Sélectionnez Write the join statement manually (Écrire l’instruction de jointure manuellement), puis finalisez l’instruction de jointure de la façon suivante :

    ON [Employee].[BusinessEntityID] =  [SalesOrderHeader].[SalesPersonID] 
    

    b. Dans Spécifiez les options de jointure, sélectionnez Clé unique, puis sélectionnez OK.

    Selections for adding a join to the filter

  11. Dans la page Filtrer les lignes de la table, sélectionnez SalesOrderHeader. Ensuite, sélectionnez Ajouter, puis Ajouter une jointure pour étendre le filtre sélectionné.

    a. Dans la boîte de dialogue Ajouter une jointure , sélectionnez Sales.SalesOrderDetail sous Table jointe.
    b. Sélectionnez Utiliser le générateur pour créer l’instruction.
    c. Dans la zone d’aperçu, vérifiez que l’instruction de jointure ressemble à ceci :

    ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID] 
    

    d. Dans Spécifiez les options de jointure, sélectionnez Clé unique, puis sélectionnez OK. Cliquez sur Suivant.

    Selections for adding another join, for sales orders

  12. Sélectionnez Créer un instantané immédiatement, décochez Planifier l’exécution de l’Agent d’instantané aux heures suivantes, puis sélectionnez Suivant :

    Selection for creating a snapshot immediately

  13. Dans la page Sécurité de l’agent, sélectionnez Paramètres de sécurité. Entrez Publisher_Machine_Name>\repl_instantané dans la zone Compte de processus, indiquez< le mot de passe de ce compte, puis sélectionnez OK. Cliquez sur Suivant.

    Selections for setting Snapshot Agent security

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

  15. Une fois la publication créée, sélectionnez Fermer. Sous le nœud Réplication, dans l’Explorateur d’objets, cliquez avec le bouton droit sur Publications locales puis sélectionnez Actualiser pour afficher la nouvelle réplication de fusion.

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 AdvWorksSalesOrdersMerge, puis sélectionnez Afficher l’état de l’Agent d’instantané :

    Selections for viewing 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 leçon suivante.

Ajouter la connexion de l’Agent de fusion à la liste d’accès à la publication

  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 AdvWorksSalesOrdersMerge, puis sélectionnez Propriétés.

    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_merge, puis sélectionnez OK. Recliquez sur OK.

    Selections for adding the Merge Agent login

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

Créer un abonnement à la publication de fusion

Dans cette section, vous allez ajouter un abonnement à la publication de fusion que vous avez créée. Ce tutoriel utilise l’abonné distant (NODE2\SQL2016). Ensuite, vous définirez les autorisations sur la base de données d’abonnement et génèrerez manuellement l’instantané filtré des données du nouvel abonnement.

Ajouter un abonné à la publication de fusion

  1. Connecter à l’abonné dans SQL Server Management Studio et développez le nœud du serveur. Développez le dossier Réplication, cliquez avec le bouton droit sur le dossier Abonnements locaux, puis sélectionnez Nouveaux abonnements. L’Assistant Nouvel abonnement démarre :

    Selections to start the New Subscription Wizard

  2. Dans la page Publication, sélectionnez Rechercher un serveur de publication SQL dans la liste Serveur de publication.

    Dans la boîte de dialogue Se connecter au serveur, entrez le nom de l’instance du serveur de publication dans la zone Nom du serveur, puis sélectionnez Se connecter.

    Selections for adding a publisher

  3. Sélectionnez AdvWorksSalesOrdersMerge, puis Suivant.

  4. Dans la page Emplacement de l’Agent de fusion, sélectionnez Exécuter chaque agent sur son Abonné, puis Suivant :

  5. Dans la page Abonnés, sélectionnez le nom d’instance du serveur d’abonné. Sous Base de données d’abonnement, sélectionnez Nouvelle base de données dans la liste.

    Dans la boîte de dialogue Nouvelle base de données, entrez SalesOrdersReplica dans la zone Nom de la base de données. Sélectionnez OK, puis Suivant.

    Selections for adding a database to the subscriber

  6. Dans la page Sécurité de l’agent de fusion, cliquez sur le bouton de sélection (... ). Entrez Subscriber_Machine_Name>\repl_merge dans la zone Compte de processus et indiquez <le mot de passe de ce compte. Sélectionnez OK, Suivant, puis à nouveau Suivant.

    Selections for Merge Agent security

  7. Dans la page Planification de synchronisation, configurez la Planification de l’agent sur Exécuter uniquement à la demande. Cliquez sur Suivant.

  8. Dans la page Initialiser les abonnements, sélectionnez Lors de la première synchronisation dans la liste À quel moment. Sélectionnez Suivant pour passer à la page Type d’abonnement, puis sélectionnez le type d’abonnement approprié. Ce tutoriel utilise Client. Après avoir sélectionné le type d’abonnement, sélectionnez à nouveau Suivant.

    Selections for initializing subscriptions at first synchronization

  9. Dans la page Valeurs de HOST_NAME, entrez adventure-works\pamela0 dans la zone Valeur de HOST_NAME. Sélectionnez Terminer.

  10. Sélectionnez Terminer. Une fois l’abonnement créé, sélectionnez Fermer.

Définir des autorisations de serveur pour 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.

    Dans la page Général, sélectionnez Rechercher, puis entrez <Subscriber_ Machine_Name>\repl_merge dans la zone Entrer le nom de l’objet. Sélectionnez Vérifier les noms, puis sélectionnez OK.

    Selections for setting the login

  2. Dans la page Mappage d’utilisateur, sélectionnez la base de données SalesOrdersReplica, puis sélectionnez le rôle db_owner. Dans la page Éléments sécurisables, accordez l’autorisation Explicite à Modifier une trace. Cliquez sur OK.

Créer l’instantané filtré des données 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 de réplication.

  2. Dans le dossier Publications locales, cliquez avec le bouton droit sur la publication AdvWorksSalesOrdersMerge, puis sélectionnez Propriétés.

    a. Sélectionnez la page Partitions de données, puis sélectionnez Ajouter.
    b. Dans la boîte de dialogue Ajouter une partition de données, entrez adventure-works\pamela0 dans la zone Valeur de HOST_NAME, puis sélectionnez OK.
    c. Sélectionnez la partition nouvellement ajoutée, sélectionnez Générer les instantanés sélectionnés maintenant, puis OK.

    Selections for adding a partition

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

Synchroniser l’abonnement avec la publication de fusion

Dans cette section, vous démarrez le Agent de fusion pour initialiser l’abonnement à l’aide de SQL Server Management Studio. Vous allez également utiliser cette procédure pour effectuer la synchronisation avec le serveur de publication.

Démarrer la synchronisation et initialiser l’abonnement

  1. Connecter à l’abonné dans SQL Server Management Studio.

  2. Vérifiez que SQL Server Agent est en cours d’exécution. Si ce n’est pas le cas, cliquez avec le bouton droit sur SQL Server Agent dans l’Explorateur d’objets, puis sélectionnez Démarrer. Si l’agent ne démarre pas, vous devez le démarrer manuellement à partir du Gestionnaire de configuration SQL Server.

  3. Développez le nœud Réplication. Dans le dossier Abonnements locaux, cliquez avec le bouton droit sur l’abonnement de la base de données SalesOrdersReplica, puis sélectionnez Afficher l’état de synchronisation.

    Sélectionnez Démarrer pour initialiser l’abonnement.

    Synchronization status with

Étapes suivantes

Vous avez correctement configuré votre serveur de publication et votre abonné pour la réplication de fusion. Vous pouvez également :

  1. Insérer, mettre à jour ou supprimer des données dans la table SalesOrderHeader ou SalesOrderDetail sur le serveur de publication ou l’abonné.
  2. Répéter cette procédure quand la connectivité réseau est disponible pour synchroniser les données entre le serveur de publication et l’abonné.
  3. Interroger la table SalesOrderHeader ou SalesOrderDetail sur l’autre serveur pour voir les modifications répliquées.

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