Partage via


Tutoriel : Préparer SQL Server pour la réplication (serveur de publication, serveur de distribution, abonné)

S'applique à : SQL Server

Vous devez planifier la sécurité avant de configurer la topologie de réplication. Ce didacticiel vous explique comment mieux sécuriser une topologie de réplication. Il montre également comment configurer la distribution, ce qui constitue la première étape de la réplication des données. Ce didacticiel doit être effectué avant les autres didacticiels.

Remarque

Pour répliquer les données de façon sécurisée entre les serveurs, vous devez implémenter l’ensemble des recommandations de la rubrique Méthodes préconisées en matière de sécurité de réplication.

Ce tutoriel vous apprend à préparer un serveur afin que la réplication puisse s’exécuter de façon sécurisée avec les privilèges minimaux.

Dans ce tutoriel, vous allez apprendre à :

  • Créer des comptes Windows pour la réplication.
  • Préparer le dossier d’instantanés.
  • Configurer la distribution.

Prérequis

Ce tutoriel est destiné aux utilisateurs qui sont familiers des opérations essentielles de base de données, mais dont l’expérience en matière de réplication est limitée.

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 être des éditeurs de réplication.

    • Exemple de base de données AdventureWorks2022 . Pour améliorer la 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 la réplication transactionnelle.

  • Installez SQL Server Management Studio.

  • Installez SQL Server Développeur édition.

  • 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 Restaurer une sauvegarde de base de données à l’aide de SSMS.

Remarque

  • La réplication n’est pas prise en charge sur les instances SQL Server qui sont séparées par plus de deux versions. Pour plus d’informations, consultez Compatibilité descendante de la réplication.

  • 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 : 30 minutes

Créer des comptes Windows pour la réplication

Dans cette section, vous créez des comptes Windows pour exécuter les agents de réplication. Vous créez un compte Windows distinct sur le serveur local pour les agents suivants :

Agent Emplacement Nom de compte
Agent d'instantané Éditeur <nom_ordinateur>\repl_snapshot
l'Agent de lecture du journal ; Éditeur <nom_ordinateur>\repl_logreader
Agent de distribution Serveur de publication et Abonné <nom_ordinateur>\repl_distribution
Agent de fusion Serveur de publication et Abonné <nom_ordinateur>\repl_merge

Remarque

Dans les didacticiels de réplication, le serveur de publication et le serveur de distribution partagent la même instance (NODE1\SQL2016) de SQL Server. L’instance de l’abonné (NODE2\SQL2016) est distante. L’éditeur et l’abonné peuvent partager la même instance de SQL Server, mais ce n’est pas obligatoire. Si l’éditeur et l’abonné partagent la même instance, les étapes utilisées pour créer des comptes sur l’abonné ne sont pas requises.

Créer des comptes Windows locaux pour les agents de réplication sur le serveur de publication

  1. Sur le serveur de publication, dans le Panneau de configuration, dans Outils d’administration, ouvrez Gestion de l’ordinateur.

  2. Dans Outils système, développez Utilisateurs et groupes locaux.

  3. Cliquez avec le bouton droit sur Utilisateurs, puis sélectionnez Nouvel utilisateur.

  4. Entrez repl_snapshot dans la zone Nom d’utilisateur, fournissez le mot de passe et autres informations appropriées, puis sélectionnez Créer pour créer le compte repl_snapshot :

    Capture d’écran de la boîte de dialogue « Nouvel utilisateur ».

  5. Répétez l’étape précédente pour créer les comptes repl_logreader, repl_distribution et repl_merge :

    Capture d’écran de la liste des utilisateurs de réplication.

  6. Sélectionnez Fermer.

Créer des comptes Windows locaux pour les agents de réplication sur l'Abonné

  1. Sur l’Abonné, dans le Panneau de configuration, dans Outils d’administration, ouvrez Gestion de l’ordinateur.

  2. Dans Outils système, développez Utilisateurs et groupes locaux.

  3. Cliquez avec le bouton droit sur Utilisateurs, puis sélectionnez Nouvel utilisateur.

  4. Entrez repl_distribution dans la zone Nom d’utilisateur, fournissez le mot de passe et autres informations appropriées, puis sélectionnez Créer pour créer le compte repl_distribution.

  5. Répétez l'étape précédente pour créer le compte repl_merge.

  6. Sélectionnez Fermer.

Pour plus d’informations, consultez la vue d’ensemble des agents de réplication.

Préparer le dossier d’instantanés

Dans cette section, vous configurez le dossier d’instantanés utilisé pour créer et stocker l’instantané des publications.

Créer un partage pour le dossier d’instantanés et attribuer les autorisations

  1. Dans l’Explorateur de fichiers, accédez au dossier de données SQL Server. L'emplacement par défaut est : C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data.

  2. Créez un dossier nommé repldata.

  3. Cliquez avec le bouton droit sur ce dossier et sélectionnez Propriétés.

    1. Sous l’onglet Partage de la boîte de dialogue Propriétés de repldata, sélectionnez Partage avancé.

    2. Dans la boîte de dialogue Partage avancé, sélectionnez Partager ce dossier, puis sélectionnez Autorisations.

    Capture d’écran des sélections pour le partage du dossier repldata.

  4. Dans la boîte de dialogue Autorisations pour repldata, sélectionnez Ajouter. Dans la zone de texte Sélectionnez Utilisateurs, Ordinateurs, Compte de service ou Groupes, tapez le nom du compte d’Agent d’instantané créé précédemment, sous la forme <nom_ordinateur_serveur_de_publication>\repl_snapshot. Sélectionnez Vérifier les noms, puis sélectionnez OK.

    Capture d’écran des sélections pour ajouter des autorisations de partage.

  5. Répétez l’étape 6 pour ajouter les deux autres comptes que vous avez créés précédemment : <nom_ordinateur_serveur_de_publication>\repl_merge et <nom_ordinateur_serveur_de_publication>\repl_distribution.

  6. Après avoir ajouté les trois comptes, attribuez les autorisations suivantes :

    • repl_distribution : Lecture
    • repl_merge : Lecture
    • repl_snapshot : Contrôle total

    Capture d’écran des autorisations partagées pour chaque compte.

  7. Une fois vos autorisations de partage correctement configurées, sélectionnez OK pour fermer la boîte de dialogue Autorisations pour repldata. Sélectionnez OK pour fermer la boîte de dialogue Partage avancé.

  8. Dans la boîte de dialogue Propriétés de repldata, sous l’onglet Sécurité, sélectionnez Modifier :

    Capture d’écran du bouton « Modifier » sous l’onglet « Sécurité ».

  9. Dans la boîte de dialogue Autorisations pour repldata, sélectionnez Ajouter. Dans la zone de texte Sélectionnez Utilisateurs, Ordinateurs, Compte de service ou Groupes, tapez le nom du compte d’Agent d’instantané créé précédemment, sous la forme <nom_ordinateur_serveur_de_publication>\repl_snapshot. Sélectionnez Vérifier les noms, puis sélectionnez OK.

    Capture d’écran des sélections pour ajouter des autorisations de sécurité.

  10. Répétez l’étape précédente pour ajouter des autorisations pour l’agent de distribution, sous la forme <nom_ordinateur_serveur_de_publication>\repl_distribution, et pour l’agent de fusion, sous la forme <nom_ordinateur_serveur_de_publication>\repl_merge.

  11. Vérifiez que les autorisations suivantes sont accordées :

    • repl_distribution : Lecture
    • repl_merge : Lecture
    • repl_snapshot : Contrôle total

    Capture d’écran des autorisations utilisateur pour les données de réplication.

  12. Sous l’onglet Partage, notez le Chemin réseau pour le partage. Vous avez besoin de ce chemin plus tard lorsque vous configurez votre dossier d’instantanés.

    Capture d’écran du chemin d’accès réseau sous l’onglet « Partage ».

  13. Sélectionnez OK pour fermer la boîte de dialogue Propriétés de repldata.

Pour plus d’informations, consultez Sécuriser le dossier d’instantanés.

Configurer la distribution

Dans cette section, vous configurez la distribution sur le serveur de publication et définir les autorisations nécessaires sur les bases de données de publication et de distribution. Si vous avez déjà configuré le serveur de distribution, vous devez désactiver la publication et la distribution avant de commencer cette section. Ne désactivez pas la publication et la distribution si vous devez conserver une topologie de réplication existante, en particulier en production.

La configuration d'un serveur de publication avec un serveur de distribution distant dépasse le cadre de ce didacticiel.

Configurer la distribution sur le serveur de publication

  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 le dossier Réplication, puis sélectionnez Configurer la distribution :

    Capture d’écran de la commande « Configurer la distribution » dans le menu contextuel.

    • Si vous vous connectez à SQL Server à l’aide de localhost plutôt que du nom du serveur réel, vous êtes invité à indiquer que SQL Server ne peut pas se connecter à localhost ou à l’adresse IP. Sélectionnez OK dans la boîte de dialogue d’avertissement. Dans la boîte de dialogue Se connecter au serveur, remplacez le nom du serveur qui indique localhost ou une adresse IP par le nom de votre serveur. Sélectionnez Connecter.

    • Il existe actuellement un problème connu avec SQL Server Management Studio (SSMS) 18.0 (et versions ultérieures) où un message d’avertissement n’est pas affiché lors de la connexion au serveur de distribution avec l’adresse IP, mais n’est toujours pas valide. Le nom du serveur doit être utilisé lors de la connexion au serveur de distribution.

    Remarque

    Le nom du serveur peut être spécifié comme <Hostname>,<PortNumber> pour une instance par défaut ou <Hostname>\<InstanceName>,<PortNumber> pour une instance nommée. Spécifiez le numéro de port de votre connexion lorsque SQL Server est déployé sur Linux ou Windows avec un port personnalisé et que le service de navigateur est désactivé. L’utilisation de numéros de port personnalisés pour le serveur de distribution distant s’applique à SQL Server 2019 (15.x) et versions ultérieures.

    L'Assistant Configuration de la distribution démarre.

  3. Dans la page Serveur de distribution, sélectionnez <'nom_serveur'> agit comme son propre serveur de distribution ; SQL Server crée une base de données de distribution et un journal. Sélectionnez ensuite Suivant.

    Capture d’écran de l’option permettant de faire agir le serveur comme son propre serveur de distribution.

  4. Si SQL Server Agent n’est pas en cours d’exécution, dans la page de démarrage de SQL Server Agent, sélectionnez Oui, configurez le service SQL Server Agent pour démarrer automatiquement. Cliquez sur Suivant.

  5. Entrez le chemin \\<nom_ordinateur_serveur_de_publication>\repldata dans la zone Dossier d’instantanés, puis sélectionnez Suivant. Ce chemin doit correspondre au Chemin réseau du dossier des propriétés de repldata, tel que vous l’avez défini quand vous avez configuré les propriétés du partage.

    Capture d’écran de la comparaison des chemins réseau dans la boîte de dialogue « propriétés repldata » et dans l’Assistant Configuration de la distribution.

  6. Acceptez les valeurs par défaut sur les pages restantes de l'Assistant.

    Capture d’écran de la dernière page de l’Assistant.

  7. Sélectionnez Terminer pour activer la distribution.

L’erreur suivante peut apparaître quand vous configurez le serveur de distribution. Il s’agit d’une indication que le compte utilisé pour démarrer le compte SQL Server Agent n’est pas administrateur sur le système. Vous devez démarrer manuellement l’Agent SQL Server, accorder ces autorisations au compte existant ou modifier le compte utilisé par SQL Server Agent.

Capture d’écran du message d’erreur pour la configuration de l’agent SQL Server.

Si votre instance SQL Server Management Studio s’exécute avec des droits d’administration, vous pouvez démarrer l’Agent SQL manuellement à partir de SSMS :

Capture d’écran de la sélection de « Démarrer » dans le menu contextuel de l’agent dans SSMS.

Remarque

Si l’Agent SQL semble ne pas démarrer, cliquez avec le bouton droit sur SQL Server Agent dans SSMS, puis sélectionnez Actualiser. S’il demeure dans l’état arrêté, démarrez-le manuellement à partir du Gestionnaire de configuration SQL Server.

Définir les autorisations de base de données

  1. Dans SQL Server Management Studio, développez Sécurité, cliquez avec le bouton droit sur Connexions, puis sélectionnez Nouvelle connexion :

    Capture d’écran de la commande « Nouvelle connexion » dans le menu contextuel.

  2. Dans la page Général, sélectionnez Rechercher. Entrez <nom_ordinateur_serveur_de_publication>\repl_snapshot dans la zone Entrer le nom d’objet à sélectionner, sélectionnez Vérifier les noms, puis sélectionnez OK.

    Capture d’écran des sélections pour entrer le nom de l’objet.

  3. Sur la page Mappage de l'utilisateur, dans la liste Utilisateurs mappés à cette connexion, sélectionnez les bases de données distribution et AdventureWorks2022.

    Dans la liste Appartenance au rôle de base de données, sélectionnez le rôle db_owner pour la connexion pour les deux bases de données.

    Capture d’écran de la sélection des bases de données et de leur rôle.

  4. Sélectionnez OK pour créer la connexion.

  5. Répétez les étapes 1 à 4 pour créer une connexion pour les autres comptes locaux (repl_distribution, repl_logreader et repl_merge). Ces connexions doivent aussi être mappées aux utilisateurs membres du rôle de base de données fixe db_owner des bases de données de distribution et AdventureWorks.

    Capture d’écran des quatre comptes dans l’Explorateur d’objets.

Pour plus d’informations, consultez Configurer le modèle de sécurité de l’Agent de distribution et de réplication.

Étape suivante