Instantie van failovercluster voor SMB-opslag configureren - SQL Server op Linux
van toepassing op:SQL Server- - Linux
In dit artikel wordt uitgelegd hoe u SMB-opslag configureert voor een failoverclusterexemplaar (FCI) in Linux.
In de niet-Windows-wereld wordt SMB ook wel een CIFS-share (Common Internet File System) genoemd en geïmplementeerd via Samba. In de Windows-wereld wordt het openen van een SMB-share op deze manier uitgevoerd: \\SERVERNAME\SHARENAME
. Voor SQL Server-installaties op basis van Linux moet de SMB-share worden gekoppeld als een map.
Belangrijke bron- en servergegevens
Hier volgen enkele tips en notities voor het gebruik van SMB:
- De SMB-share kan zich in Windows, Linux of zelfs vanaf een apparaat bevinden, zolang deze gebruikmaakt van SMB 3.0 of nieuwere versies. Zie voor meer informatie over Samba en SMB 3.0 SMB 3.0 om te zien of uw Samba-implementatie voldoet aan SMB 3.0.
- De SMB-share moet maximaal beschikbaar zijn.
- Beveiliging moet correct worden ingesteld op de SMB-share. Hieronder ziet u een voorbeeld uit
/etc/samba/smb.conf
, waarbijSQLData
de naam van de share is.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser
Aanwijzingen
Kies een van de servers die deelnemen aan de FCI-configuratie. Het maakt niet uit welke.
Informatie ophalen over de
mssql
gebruiker.sudo id mssql
Noteer de
uid
,gid
en groepen.Voer
sudo smbclient -L //NameOrIP/ShareName -U User
uit.-
<NameOrIP>
is de DNS-naam of het IP-adres van de server die als host fungeert voor de SMB-share. -
<ShareName>
is de naam van de SMB-share.
-
Volg deze stappen voor systeemdatabases of alles wat is opgeslagen op de standaardgegevenslocatie. Ga anders verder met stap 5.
Zorg ervoor dat SQL Server is gestopt op de server waaraan u werkt.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Schakel volledig over naar de superuser.
sudo -i
Schakel over naar de
mssql
gebruiker.su mssql
Maak een tijdelijke map om de SQL Server-gegevens en logboekbestanden op te slaan.
mkdir <TempDir>
-
<TempDir>
is de naam van de map. In het volgende voorbeeld wordt een map met de naam/var/opt/mssql/tmp
gemaakt.
mkdir /var/opt/mssql/tmp
-
Kopieer de SQL Server-gegevens en logboekbestanden naar de tijdelijke map.
cp /var/opt/mssql/data/* <TempDir>
-
<TempDir>
is de naam van de map uit de vorige stap.
-
Controleer of de bestanden zich in de map bevinden.
ls <TempDir>
<TempDir-> is de naam van de map uit stap d.
Verwijder de bestanden uit de bestaande SQL Server-gegevensmap.
rm - f /var/opt/mssql/data/*
Controleer of de bestanden zijn verwijderd.
ls /var/opt/mssql/data
Typ exit om terug te schakelen naar de hoofdgebruiker.
Mount de SMB-share in de SQL Server-gegevensmap. In dit voorbeeld ziet u de syntaxis voor het maken van verbinding met een Op Windows Server gebaseerde SMB 3.0-share.
Mount -t cifs //<ServerName>/<ShareName> /var/opt/mssql/data -o vers=3.0,username=<UserName>,password=<Password>,domain=<domain>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
-
<ServerName>
is de naam van de server met de SMB-share -
<ShareName>
is de naam van de share -
<UserName>
is de naam van de gebruiker voor toegang tot de share -
<Password>
is het wachtwoord voor de gebruiker -
<domain>
is de naam van Active Directory -
<mssqlUID>
is de UID van demssql
gebruiker -
<mssqlGID>
is de GID van demssql
gebruiker
-
Controleer of de koppeling is geslaagd door de mount-opdracht zonder opties uit te voeren.
mount
Schakel over naar de
mssql
gebruiker.su mssql
Kopieer de bestanden uit de tijdelijke map
/var/opt/mssql/data
.cp /var/opt/mssql/tmp/* /var/opt/mssql/data
Controleer of de bestanden er zijn.
ls /var/opt/mssql/data
Voer
exit
in om nietmssql
te zijn.Voer
exit
in om niet te wordenroot
.Start SQL Server. Als alles correct is gekopieerd en de beveiliging correct is toegepast, moet SQL Server worden weergegeven als gestart.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Als u verder wilt testen, maakt u een database om ervoor te zorgen dat de machtigingen goed zijn. In het volgende voorbeeld wordt Transact-SQL gebruikt; U kunt SSMS gebruiken.
Stop SQL Server en controleer of deze is afgesloten. Als u andere schijven gaat toevoegen of testen, sluit u SQL Server pas af als deze schijven zijn toegevoegd en getest.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Alleen als u klaar bent, ontkoppel de gedeelde map. Als dat niet het geval is, ontkoppelt u deze na het testen/toevoegen van extra schijven.
sudo umount //<IPAddressorServerName>/<ShareName /<FolderMountedIn>
-
<IPAddressOrServerName>
is het IP-adres of de naam van de SMB-host -
<ShareName>
is de naam van de share -
<FolderMountedIn>
is de naam van de map waarin SMB is gekoppeld
-
Volg deze stappen voor andere zaken dan systeemdatabases, zoals gebruikersdatabases of back-ups. Als u alleen de standaardlocatie gebruikt, gaat u verder met stap 14.
Schakel over naar de superuser.
sudo -i
Maak een map die wordt gebruikt door SQL Server.
mkdir <FolderName>
<FolderName> de naam van de map is. Het volledige pad van de map moet worden opgegeven als dit niet op de juiste locatie staat. In het volgende voorbeeld wordt een map met de naam
/var/opt/mssql/userdata
gemaakt.mkdir /var/opt/mssql/userdata
Koppel de SMB-share in de SQL Server-gegevensmap. In dit voorbeeld ziet u de syntaxis voor het maken van verbinding met een Samba-gebaseerde SMB 3.0-share.
Mount -t cifs //<ServerName>/<ShareName> <FolderName> -o vers=3.0,username=<UserName>,password=<Password>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
-
<ServerName>
is de naam van de server met de SMB-share -
<ShareName>
is de naam van de share -
<FolderName>
is de naam van de map die in de laatste stap is gemaakt -
<UserName>
is de naam van de gebruiker voor toegang tot de share -
<Password>
is het wachtwoord voor de gebruiker -
<mssqlUID>
is de UID van demssql
gebruiker -
<mssqlGID>
is de GID van demssql
gebruiker.
-
Controleer of de koppeling is geslaagd door het mount-commando zonder parameters uit te voeren.
Typ exit om niet langer de superuser te zijn.
Als u wilt testen, maakt u een database in die map. In het volgende voorbeeld wordt sqlcmd gebruikt om een database te maken, naar een andere context te schakelen, te controleren of de bestanden op besturingssysteemniveau bestaan en vervolgens de tijdelijke locatie te verwijderen. U kunt SSMS gebruiken.
De gedeelde map ontkoppelen
sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>
-
<IPAddressOrServerName>
is het IP-adres of de naam van de SMB-host -
<ShareName>
is de naam van de share -
<FolderMountedIn>
is de naam van de map waarin SMB is gekoppeld.
-
Herhaal de stappen op de andere knooppunten.
U bent nu klaar om de FCI te configureren.
Verwante inhoud
- Failoverclusterexemplaren configureren - RHEL- (SQL Server on Linux)