Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:Program SQL Server w systemie Linux
W tym artykule wyjaśniono, jak skonfigurować magazyn SMB dla wystąpienia klastra przełączania awaryjnego (FCI) w systemie Linux.
Poza systemem Windows SMB jest również nazywany udziałem CIFS (Common Internet File System), który implementuje Samba. W systemie Windows uzyskujesz dostęp do udziału SMB w formacie \\SERVERNAME\SHARENAME. W przypadku instalacji SQL Server opartych na Linuksie należy zamontować udostępnione SMB jako folder.
Ważne informacje o źródle i serwerze
Stosuj się do tych wskazówek, aby skutecznie korzystać z SMB:
- Zasób SMB może znajdować się w systemie Windows, Linux lub na urządzeniu sieciowym, pod warunkiem że korzysta z SMB 3.0 lub nowszego. Aby uzyskać więcej informacji o Sambie i SMB 3.0, zobacz SMB 3.0 , aby sprawdzić, czy implementacja Samby jest zgodna z SMB 3.0.
- Udział SMB powinien być wysoce dostępny.
- Prawidłowo skonfiguruj zabezpieczenia dla udziału SMB. Poniższy przykład pochodzi z
/etc/samba/smb.conf, gdzieSQLDatato nazwa udziału.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser
Instrukcje
Wybierz jeden z serwerów, aby uczestniczyć w konfiguracji FCI. Nie ma znaczenia, który z nich.
Uzyskaj informacje o użytkowniku
mssql.sudo id mssqlZwróć uwagę na
uid,gidoraz grupy.Wykonaj
sudo smbclient -L //NameOrIP/ShareName -U User.-
<NameOrIP>to nazwa DNS lub adres IP serwera, który hostuje udział SMB. -
<ShareName>jest nazwą udziału SMB.
-
W przypadku systemowych baz danych lub dowolnych elementów przechowywanych w domyślnej lokalizacji danych wykonaj następujące kroki. W przeciwnym razie przejdź do kroku 5.
Upewnij się, że SQL Server jest zatrzymany na serwerze, na którym pracujesz.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverPrzełącz się całkowicie na superużytkownika.
sudo -iPrzejdź do użytkownika
mssql.su mssqlUtwórz katalog tymczasowy do przechowywania danych i plików dziennika programu SQL Server.
mkdir <TempDir>-
<TempDir>jest nazwą folderu. Poniższy przykład tworzy folder o nazwie/var/opt/mssql/tmp.
mkdir /var/opt/mssql/tmp-
Skopiuj dane i pliki dziennika programu SQL Server do katalogu tymczasowego.
cp /var/opt/mssql/data/* <TempDir>-
<TempDir>to nazwa folderu z poprzedniego kroku.
-
Sprawdź, czy pliki znajdują się w katalogu.
ls <TempDir>< > TempDir to nazwa folderu z kroku d.
Usuń pliki z istniejącego katalogu danych SQL Server.
rm -f /var/opt/mssql/data/*Sprawdź, czy pliki już nie istnieją.
ls /var/opt/mssql/dataNaciśnij klawisz Enter
exit, aby przełączyć z powrotem na użytkownikaroot.Zamontuj udział SMB w folderze danych programu SQL Server. W tym przykładzie przedstawiono składnię nawiązywania połączenia z udziałem SMB 3.0 opartym na systemie Windows Server.
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>jest nazwą serwera z udziałem SMB -
<ShareName>jest nazwą udostępnienia -
<UserName>jest nazwą użytkownika, który ma uzyskać dostęp do udziału -
<Password>to hasło użytkownika -
<domain>jest nazwą usługi Active Directory -
<mssqlUID>jest identyfikatorem UID użytkownikamssql -
<mssqlGID>jest giD użytkownikamssql
-
Sprawdź montaż, uruchamiając
mountbez przełączników.mountPrzejdź do użytkownika
mssql.su mssqlSkopiuj pliki z katalogu tymczasowego
/var/opt/mssql/data.cp /var/opt/mssql/tmp/* /var/opt/mssql/dataSprawdź, czy znajdują się tam pliki.
ls /var/opt/mssql/dataNaciśnij Enter
exit, aby opuścić konto użytkownikamssql.Naciśnij klawisz Enter, aby opuścić użytkownika
root.Uruchom program SQL Server. Jeśli wszystko skopiowałeś i poprawnie zastosowałeś zabezpieczenia, uruchamia się SQL Server.
sudo systemctl start mssql-server sudo systemctl status mssql-serverAby przeprowadzić dalsze testowanie, utwórz bazę danych, aby upewnić się, że uprawnienia są poprawne. Poniższy przykład wykorzystuje Transact-SQL; możesz użyć SQL Server Management Studio (SSMS).
Zatrzymaj program SQL Server i sprawdź, czy został zamknięty. Jeśli planujesz dodawać lub testować inne dyski, nie wyłączaj SQL Server, dopóki ich nie dodasz i nie przetestujesz.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverJeśli skończysz, odmontuj udział. W przeciwnym razie odmontuj po zakończeniu testów lub dodawania dysków.
sudo umount //<IPAddressorServerName>/<ShareName>/<FolderMountedIn>-
<IPAddressOrServerName>to adres IP lub nazwa hosta SMB -
<ShareName>jest nazwą udostępnienia -
<FolderMountedIn>to nazwa folderu, w którym jest instalowany protokół SMB
-
W przypadku innych elementów niż systemowe bazy danych, takie jak bazy danych użytkowników lub kopie zapasowe, wykonaj następujące kroki. Jeśli używasz tylko domyślnej lokalizacji, przejdź do kroku 14.
Przełącz się na superużytkownika.
sudo -iStwórz folder, z którego korzysta SQL Server.
mkdir <FolderName><FolderName> jest nazwą folderu. Określ pełną ścieżkę folderu, jeśli nie znajduje się on we właściwej lokalizacji. Poniższy przykład tworzy folder o nazwie
/var/opt/mssql/userdata.mkdir /var/opt/mssql/userdataZamontuj udział SMB w folderze danych programu SQL Server. W tym przykładzie pokazano składnię połączenia z udziałem sieciowym SMB 3.0 opartym na protokole Samba.
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>jest nazwą serwera z udziałem SMB -
<ShareName>jest nazwą udostępnienia -
<FolderName>to nazwa folderu utworzonego w ostatnim kroku -
<UserName>jest nazwą użytkownika, który ma uzyskać dostęp do udziału -
<Password>to hasło użytkownika -
<mssqlUID>jest identyfikatorem UID użytkownikamssql -
<mssqlGID>jest GID-em użytkownikamssql.
-
Sprawdź montaż, uruchamiając
mountbez przełączników.Naciśnij
exit, aby wyjść z trybu superużytkownika.Aby przetestować, utwórz bazę danych w tym folderze. Poniższy przykład używa
sqlcmd, aby utworzyć bazę danych, przełączyć kontekst na tę bazę, sprawdzić, czy pliki istnieją na poziomie systemu operacyjnego, a następnie usunąć tymczasową lokalizację. Możesz użyć programu SSMS.Odmontuj udział.
sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>-
<IPAddressOrServerName>to adres IP lub nazwa hosta SMB -
<ShareName>jest nazwą udostępnienia -
<FolderMountedIn>to nazwa folderu, w którym jest instalowany protokół SMB.
-
Powtórz kroki w innych węzłach.
Teraz możesz przystąpić do skonfigurowania FCI.