Configureer SMB storage failover cluster instance voor SQL Server on Linux

Van toepassing op:SQL Server op Linux

In dit artikel wordt uitgelegd hoe u SMB-opslag configureert voor een failoverclusterexemplaar (FCI) in Linux.

Buiten Windows wordt SMB ook wel een Common Internet File System (CIFS) share genoemd, die Samba implementeert. Op Windows krijg je toegang tot een SMB-share met het formaat \\SERVERNAME\SHARENAME. Voor Linux-gebaseerde SQL Server-installaties moet je de SMB-share als map mounten.

Belangrijke bron- en servergegevens

Volg deze tips om SMB succesvol te gebruiken:

  • De SMB-share kan op Windows, Linux of een apparaat zitten, zolang het SMB 3.0 of later gebruikt. Voor meer informatie over Samba en SMB 3.0, zie SMB 3.0 om te controleren of uw Samba-implementatie voldoet aan SMB 3.0.
  • De SMB-share moet maximaal beschikbaar zijn.
  • Stel de beveiliging correct in op de SMB-share. Het volgende voorbeeld is van /etc/samba/smb.conf, waarbij SQLData de naam van het aandeel is.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Aanwijzingen

  1. Kies een van de servers om deel te nemen aan de FCI-configuratie. Het maakt niet uit welke.

  2. Informatie ophalen over de mssql gebruiker.

     sudo id mssql
    

    Noteer de uid, giden groepen.

  3. 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.
  4. Volg deze stappen voor systeemdatabases of alles wat is opgeslagen op de standaardgegevenslocatie. Ga anders verder met stap 5.

    1. Zorg ervoor dat SQL Server wordt gestopt op de server waar je aan werkt.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Schakel volledig over naar de superuser.

      sudo -i
      
    3. Schakel over naar de mssql gebruiker.

      su mssql
      
    4. 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/tmpgemaakt.
      mkdir /var/opt/mssql/tmp
      
    5. 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.
    6. Controleer of de bestanden zich in de map bevinden.

      ls <TempDir>
      

      <TempDir-> is de naam van de map uit stap d.

    7. Verwijder de bestanden uit de bestaande SQL Server-gegevensmap.

      rm -f /var/opt/mssql/data/*
      
    8. Controleer of de bestanden niet meer bestaan.

      ls /var/opt/mssql/data
      
    9. Enter exit om terug te schakelen naar de root gebruiker.

    10. 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 de mssql gebruiker
      • <mssqlGID> is de GID van de mssql gebruiker
    11. Controleer de mount door zonder schakelaars te draaien mount .

      mount
      
    12. Schakel over naar de mssql gebruiker.

      su mssql
      
    13. Kopieer de bestanden uit de tijdelijke map /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssql/data
      
    14. Controleer of de bestanden er zijn.

      ls /var/opt/mssql/data
      
    15. Enter exit om de mssql gebruiker te verlaten.

    16. Enter exit om de root gebruiker te verlaten.

    17. Start SQL Server. Als je alles hebt gekopieerd en de beveiliging correct toepast, start SQL Server.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    18. Als u verder wilt testen, maakt u een database om ervoor te zorgen dat de machtigingen goed zijn. Het volgende voorbeeld gebruikt Transact-SQL; je kunt SQL Server Management Studio (SSMS) gebruiken.

      Schermopname van het maken van de testdatabase.

    19. Stop SQL Server en controleer of deze is afgesloten. Als je van plan bent andere schijven toe te voegen of te testen, sluit dan SQL Server niet af totdat je ze hebt toegevoegd en getest.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. Als je klaar bent, haal dan de share eraf. Anders kun je het verwijderen nadat je klaar bent met testen of het toevoegen van 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
  5. Volg deze stappen voor andere zaken dan systeemdatabases, zoals gebruikersdatabases of back-ups. Als je alleen de standaardlocatie gebruikt, ga dan naar stap 14.

    1. Schakel over naar de superuser.

      sudo -i
      
    2. Maak een map aan voor SQL Server om te gebruiken.

      mkdir <FolderName>
      

      <FolderName> de naam van de map is. Specificeer het volledige pad van de map als het niet op de juiste locatie is. In het volgende voorbeeld wordt een map met de naam /var/opt/mssql/userdatagemaakt.

      mkdir /var/opt/mssql/userdata
      
    3. Mount 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 de mssql gebruiker
      • <mssqlGID> is de GID van de mssql gebruiker.
    4. Controleer de mount door zonder schakelaars te draaien mount .

    5. Voer in exit om de superuser te verlaten.

    6. Als u wilt testen, maakt u een database in die map. Het volgende voorbeeld wordt gebruikt sqlcmd om een database aan te maken, de context ernaar te wisselen, te verifiëren dat de bestanden op OS-niveau bestaan, en vervolgens de tijdelijke locatie te verwijderen. U kunt SSMS gebruiken.

    7. Ontkoppel de netwerkschijf.

      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.
  6. Herhaal de stappen op de andere knooppunten.

U bent nu klaar om de FCI te configureren.