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
Sur le serveur de publication, dans le Panneau de configuration, dans Outils d’administration, ouvrez Gestion de l’ordinateur.
Dans Outils système, développez Utilisateurs et groupes locaux.
Cliquez avec le bouton droit sur Utilisateurs, puis sélectionnez Nouvel utilisateur.
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 :
Répétez l’étape précédente pour créer les comptes repl_logreader, repl_distribution et repl_merge :
Sélectionnez Fermer.
Créer des comptes Windows locaux pour les agents de réplication sur l'Abonné
Sur l’Abonné, dans le Panneau de configuration, dans Outils d’administration, ouvrez Gestion de l’ordinateur.
Dans Outils système, développez Utilisateurs et groupes locaux.
Cliquez avec le bouton droit sur Utilisateurs, puis sélectionnez Nouvel utilisateur.
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.
Répétez l'étape précédente pour créer le compte repl_merge.
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
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.
Créez un dossier nommé repldata.
Cliquez avec le bouton droit sur ce dossier et sélectionnez Propriétés.
Sous l’onglet Partage de la boîte de dialogue Propriétés de repldata, sélectionnez Partage avancé.
Dans la boîte de dialogue Partage avancé, sélectionnez Partager ce dossier, puis sélectionnez Autorisations.
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.
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.
Après avoir ajouté les trois comptes, attribuez les autorisations suivantes :
- repl_distribution : Lecture
- repl_merge : Lecture
- repl_snapshot : Contrôle total
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é.
Dans la boîte de dialogue Propriétés de repldata, sous l’onglet Sécurité, sélectionnez Modifier :
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.
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.
Vérifiez que les autorisations suivantes sont accordées :
- repl_distribution : Lecture
- repl_merge : Lecture
- repl_snapshot : Contrôle total
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.
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
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 le dossier Réplication, puis sélectionnez Configurer la distribution :
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.
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.
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.
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.
Acceptez les valeurs par défaut sur les pages restantes de l'Assistant.
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.
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 :
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
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. 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.
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.
Sélectionnez OK pour créer la connexion.
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.
Pour plus d’informations, consultez Configurer le modèle de sécurité de l’Agent de distribution et de réplication.