Notes
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.
S’applique à :SQL Server - 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 pour 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/path1
par les agents de réplication sur le serveur de publication puissent être vus par l’abonné - SQL Server est configuré pour utiliser des chemins d’accès de partage lors de la configuration du serveur publication sur le serveur de distribution, de sorte que toutes les instances examinent le
//share/path
- SQL Server recherche le chemin d’accès local du
//share/path
pour savoir où rechercher les fichiers - SQL Server lit/écrit dans les chemins d’accès locaux sauvegardé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 par réception transactionnelle, l’agent de distribution réside sur l’abonné et nécessite l’accès au serveur de distribution pour obtenir des articles. 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 mssql
Modifiez
/etc/samba/smb.conf
pour inclure l’entrée suivante et renseigner 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 = mssql
Le tableau suivant décrit chaque paramètre.
Réglage Descriptif [mssql_data]
Nom du répertoire partagé path
Emplacement du répertoire que nous souhaitons partager writable
Déterminer si le partage est accessible en écriture à partir d’autres hôtes create mask
Autorisations Linux pour les fichiers créés directory mask
Autorisations Linux pour les répertoires créés valid users
Liste 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 de fichiers de captures instantanées
Ajoutez la section suivante à mssql.conf
sur les deux machines. Utilisez n'importe où 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 l'éditeur avec des chemins d'accès de partage
- 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 au mappage ajouté àmssql.conf
.