Delen via


De map voor replicatiesnapshots configureren met shares

van toepassing op:SQL Server- - Linux

De momentopnamemap is een map die u hebt aangewezen als een gedeelde map; agents die toegang hebben tot deze map voor lezen en schrijven, moeten over voldoende machtigingen beschikken om deze te kunnen openen.

diagram met replicatie en de snapshot-koppeling.

Uitleg over gedeelde map voor replicatiesnapshot

Voordat de voorbeelden worden beschreven, laten we eens kijken hoe SQL Server samba-shares gebruikt in replicatie. Hieronder volgt een eenvoudig voorbeeld van hoe dit werkt.

  1. Samba shares zijn geconfigureerd voor bestanden die naar /local/path1 zijn geschreven door de replicatieagenten van de uitgever, zodat ze zichtbaar zijn voor de abonnee.
  2. SQL Server is geconfigureerd om gedeelde paden te gebruiken bij het instellen van de uitgever op de distributieserver, zodat alle instanties naar de //share/path kijken.
  3. SQL Server vindt het lokale pad van de //share/path om te weten waar de bestanden moeten worden gezocht
  4. SQL Server leest/schrijft naar lokale paden die worden ondersteund door een samba-share

Een samba-share configureren voor de momentopnamemap

Replicatieagents hebben een gedeelde map tussen replicatiehosts nodig om toegang te krijgen tot momentopnamemappen op andere computers. In transactionele pull-replicatie bevindt de distributieagent zich bijvoorbeeld op de abonnee, waarvoor toegang tot de distributeur nodig is om artikelen op te halen. In deze sectie doorlopen we een voorbeeld van het configureren van een samba-share op twee replicatiehosts.

Stappen

Als voorbeeld configureren we een momentopnamemap op Host 1 (de distributeur) die moet worden gedeeld met Host 2 (de abonnee) met behulp van Samba.

Samba installeren en starten op beide machines

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

De Samba-share instellen op distributeur (host1)

  1. Gebruiker en wachtwoord instellen voor samba:

    sudo smbpasswd -a mssql
    
  2. Bewerk de /etc/samba/smb.conf om de volgende vermelding op te nemen en vul de gedeelde_naam en pad velden in.

    <[share_name]>
    path = </local/path/on/host/1>
    writable = yes
    create mask = 770
    directory mask
    valid users = mssql
    

    In de volgende tabel wordt elke instelling beschreven.

    Instelling Beschrijving
    [mssql_data] Naam van de gedeelde map
    path Locatie van map die we willen delen
    writable Bepalen of de share beschrijfbaar is vanaf andere hosts
    create mask Linux-machtigingen voor bestanden die zijn gemaakt
    directory mask Linux-machtigingen voor mappen die zijn gemaakt
    valid users Lijst met gebruikers die zich kunnen aanmelden bij deze share

    Voorbeeld

    [mssql_data]
    path = /var/opt/mssql/repldata
    writable = yes
    create mask = 770
    directory mask = 770
    valid users = mssql
    

De Samba-share koppelen aan abonnee (host2)

Bewerk de opdracht met de juiste paden en voer de volgende opdracht uit op machine2:

sudo mount //<name_of_host_1>/<share_name> </local/path/on/host/2> -o user=mssql,uid=mssql,gid=mssql

Voorbeeld

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

SQL Server op beide Linux-hosts configureren om momentopnameshare te gebruiken

Voeg de volgende sectie toe aan mssql.conf op beide computers. Gebruik waar ook de Samba-share voor de //share/path. In dit voorbeeld zou het //host1/mssql_datazijn.

[uncmapping]
//share/path = /local/path/on/hosts/

voorbeeld van

Op host1:

[uncmapping]
//host1/mssql_data = /local/path/on/hosts/1

Op host2:

[uncmapping]
//host1/mssql_data = /local/path/on/hosts/2

Uitgever configureren met gedeelde paden

  • Gebruik bij het instellen van replicatie het pad naar shares (bijvoorbeeld //host1/mssql_data
  • Wijs //host1/mssql_data toe aan een lokale map en de toewijzing die aan mssql.confis toegevoegd.