Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applies to :SQL Server sur Linux
Le dossier de captures instantanées correspond à un répertoire que vous définissez sous la forme d'un partage ; les agents qui lisent et écrivent dans le dossier doivent disposer des autorisations suffisantes pour pouvoir y accéder.
Partage de dossiers de captures instantanées de réplication expliqué
Avant les exemples, voyons comment SQL Server utilise des partages samba dans la réplication. Vous trouverez ci-dessous un exemple de base de ce fonctionnement.
- Les partages Samba sont configurés de façon à ce que les fichiers écrits sur
/local/path1par les agents de réplication sur le serveur de publication puissent être vus par l’abonné - SQL Server est configuré pour utiliser des chemins de partage lors de la configuration de l’éditeur sur le serveur de distribution afin que toutes les instances examinent le
//share/path - SQL Server recherche le chemin local à partir du
//share/pathpour savoir où rechercher les fichiers - SQL Server lit/écrit sur des chemins locaux supportés par un partage samba
Configurer un partage Samba pour le dossier de captures instantanées
Les agents de réplication auront besoin d’un répertoire partagé entre les hôtes de réplication pour accéder aux dossiers de captures instantanées sur d’autres machines. Par exemple, dans la réplication à extraction transactionnelle, l’agent de distribution réside sur l’abonné, lequel nécessite l’accès au serveur de distribution pour obtenir des éléments. Dans cette section, nous allons voir un exemple de configuration d’un partage Samba sur deux hôtes de réplication.
Étapes
Par exemple, nous allons configurer un dossier de captures instantanées sur l’hôte 1 (le serveur de distribution) à partager avec l’hôte 2 (l’abonné) à l’aide de Samba.
Installer et démarrer Samba sur les deux machines
Configurer le partage Samba sur le distributeur (host1)
Configurer un utilisateur et un mot de passe pour Samba :
sudo smbpasswd -a mssqlModifiez l’entrée
/etc/samba/smb.confsuivante et renseignez les champs share_name et chemin d’accès :<[share_name]> path = </local/path/on/host/1> writable = yes create mask = 770 directory mask valid users = mssqlLe tableau suivant décrit chaque paramètre.
Réglage Descriptif [mssql_data]Nom du répertoire partagé pathEmplacement du répertoire que nous souhaitons partager writableDéterminer si le partage est accessible en écriture à partir d’autres hôtes create maskAutorisations Linux pour les fichiers créés directory maskAutorisations Linux pour les répertoires créés valid usersListe des utilisateurs qui peuvent se connecter à ce partage Exemple
[mssql_data] path = /var/opt/mssql/repldata writable = yes create mask = 770 directory mask = 770 valid users = mssql
Monter le partage Samba sur l'abonné (host2)
Modifiez la commande avec les chemins d’accès corrects et exécutez la commande suivante sur machine2 :
sudo mount //<name_of_host_1>/<share_name> </local/path/on/host/2> -o user=mssql,uid=mssql,gid=mssql
Exemple
mount //host1/mssql_data /var/opt/mssql/repldata_shared -o user=mssql,uid=mssql,gid=mssql
user=mssql <- sets the login name for samba
uid=mssql <- makes the mssql user as the owner of the mounted directory
gid=mssql <- sets the mssql group as the owner of the mounted directory
Configurer SQL Server sur les deux hôtes Linux pour utiliser le partage d’instantanés
Ajoutez la section suivante à mssql.conf sur les deux machines. Utilisez où que ce soit le partage Samba pour le //share/path. Dans cet exemple, il s'agit de //host1/mssql_data.
[uncmapping]
//share/path = /local/path/on/hosts/
Exemple
Sur host1:
[uncmapping]
//host1/mssql_data = /local/path/on/hosts/1
Sur host2:
[uncmapping]
//host1/mssql_data = /local/path/on/hosts/2
Configurer le publieur avec des chemins d'accès partagés
- Lors de la configuration de la réplication, utilisez le chemin d’accès de partage (exemple
//host1/mssql_data - Mappez
//host1/mssql_dataà un répertoire local et ajoutez le mappage àmssql.conf.
Contenu connexe
- Réplication SQL Server sur Linux
- Procédures stockées de réplication (Transact-SQL)