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 unter 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/path1geschriebenen 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/pathbeachten - 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 mssqlBearbeiten Sie
/etc/samba/smb.conf, um den folgenden Eintrag hinzuzufügen, und füllen Sie share_name und Pfad aus.<[share_name]> path = </local/path/on/host/1> writable = yes create mask = 770 directory mask valid users = mssqlIn der folgenden Tabelle werden die einzelnen Einstellungen beschrieben.
Einstellung Beschreibung [mssql_data]Name des freigegebenen Verzeichnisses pathSpeicherort des Verzeichnisses, das wir freigeben möchten writableErmitteln, ob die Freigabe von anderen Hosts beschreibbar ist create maskLinux-Berechtigungen für erstellte Dateien directory maskLinux-Berechtigungen für erstellte Verzeichnisse valid usersListe 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_dataeinem lokalen Verzeichnis und der Zuordnung zu, diemssql.confhinzugefügt wurde.