Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server – Linux
Der Momentaufnahmeordner ist ein von Ihnen freigegebenes Verzeichnis. Agents, die aus diesem Ordner lesen bzw. in den Ordner schreiben, benötigen ausreichende Zugriffsberechtigungen.
Erläuterung der Replikation der Momentaufnahmeordner-Freigabe
Vor den Beispielen wird erläutert, wie SQL Server Samba-Freigaben in der Replikation verwendet. Im Folgenden finden Sie ein einfaches Beispiel hierfür.
- Samba-Freigaben sind so konfiguriert, dass die von den Replikations-Agents auf dem Herausgeber auf
/local/path1
geschriebenen Dateien vom Abonnenten angezeigt werden können - SQL Server ist für die Verwendung von Freigabepfaden beim Einrichten des Herausgebers auf dem Verteilungsserver so konfiguriert, dass alle Instanzen den
//share/path
beachten - SQL Server sucht den lokalen Pfad in
//share/path
, um zu wissen, wo die Dateien gesucht werden sollen. - SQL Server liest/schreibt in lokale Pfade, die von einer Samba-Freigabe gesichert sind
Konfigurieren einer Samba-Freigabe für den Momentaufnahmeordner
Replikations-Agents benötigen ein gemeinsames Verzeichnis zwischen den Replikationshosts, um auf Momentaufnahmeordner zuzugreifen, die sich auf anderen Computern befinden. Beispielsweise befindet sich der Verteilungs-Agent bei der transaktionalen Pullreplikation auf dem Abonnenten, der Zugriff auf den Verteiler benötigt, um Artikel abzurufen. In diesem Abschnitt untersuchen wir ein Beispiel für die Konfiguration einer Samba-Freigabe auf zwei Replikationshosts.
Schritte
Als Beispiel konfigurieren wir einen Momentaufnahmeordner auf Host 1 (dem Verteiler), der mithilfe von Samba für Host 2 (den Abonnenten) freigegeben werden soll.
Installieren und Starten von Samba auf beiden Computern
Einrichten der Samba-Freigabe auf Distributor (Host1)
Einrichten von Benutzernamen und Kennwort für Samba:
sudo smbpasswd -a mssql
Bearbeiten Sie die Datei
/etc/samba/smb.conf
, sodass der folgende Eintrag enthalten ist, und füllen Sie die Felder share_name und path aus.<[share_name]> path = </local/path/on/host/1> writable = yes create mask = 770 directory mask valid users = mssql
In der folgenden Tabelle werden die einzelnen Einstellungen beschrieben.
Einstellung Beschreibung [mssql_data]
Name des freigegebenen Verzeichnisses path
Speicherort des Verzeichnisses, das wir freigeben möchten writable
Ermitteln, ob die Freigabe von anderen Hosts beschreibbar ist create mask
Linux-Berechtigungen für erstellte Dateien directory mask
Linux-Berechtigungen für erstellte Verzeichnisse valid users
Liste der Benutzer, die auf diese Freigabe zugreifen können Beispiel
[mssql_data] path = /var/opt/mssql/repldata writable = yes create mask = 770 directory mask = 770 valid users = mssql
Einbinden der Samba-Freigabe auf Abonnent (Host 2)
Bearbeiten Sie den Befehl mit den richtigen Pfaden, und führen Sie den folgenden Befehl auf machine2 aus:
sudo mount //<name_of_host_1>/<share_name> </local/path/on/host/2> -o user=mssql,uid=mssql,gid=mssql
Beispiel
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
Konfigurieren Sie SQL Server auf beiden Linux-Hosts für die Verwendung der Snapshot-Freigabe.
Fügen Sie den folgenden Abschnitt zu mssql.conf
auf beiden Computern hinzu. Verwenden Sie überall die Samba-Freigabe für die //share/path
. In diesem Beispiel lautet er //host1/mssql_data
.
[uncmapping]
//share/path = /local/path/on/hosts/
Beispiel
Auf host1
:
[uncmapping]
//host1/mssql_data = /local/path/on/hosts/1
Auf host2
:
[uncmapping]
//host1/mssql_data = /local/path/on/hosts/2
Konfigurieren des Herausgebers mit freigegebenen Pfaden
- Verwenden Sie beim Einrichten der Replikation den Freigabenpfad (Beispiel
//host1/mssql_data
- Ordnen Sie
//host1/mssql_data
einem lokalen Verzeichnis und der Zuordnung zu, diemssql.conf
hinzugefügt wurde.