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.
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.
- 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. - 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. - SQL Server vindt het lokale pad van de
//share/path
om te weten waar de bestanden moeten worden gezocht - 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
De Samba-share instellen op distributeur (host1)
Gebruiker en wachtwoord instellen voor samba:
sudo smbpasswd -a mssql
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_data
zijn.
[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 aanmssql.conf
is toegevoegd.