Freigeben über


Konfigurieren der Replikation eines Momentaufnahmeordners mit Freigaben

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.

Diagramm: Replikation und Snapshot-Freigabe.

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.

  1. 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
  2. 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
  3. SQL Server sucht den lokalen Pfad in //share/path, um zu wissen, wo die Dateien gesucht werden sollen.
  4. 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

sudo yum install samba
sudo service smb start
sudo service smb status

Einrichten der Samba-Freigabe auf Distributor (Host1)

  1. Einrichten von Benutzernamen und Kennwort für Samba:

    sudo smbpasswd -a mssql
    
  2. 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, die mssql.conf hinzugefügt wurde.