Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
В этой статье описывается, как настроить хранилище SMB для экземпляра отказоустойчивого кластера в Linux.
Вне Windows SMB также называют shared Internet File System (CIFS) share, который реализует Samba. В Windows вы получаете доступ к SMB-share-серверу с форматом \\SERVERNAME\SHARENAME. Для установок SQL Server на базе Linux необходимо монтировать SMB-share как папку.
Важные сведения об источнике и сервере
Следуйте этим советам, чтобы успешно использовать SMB:
- SMB-share может быть на Windows, Linux или устройстве, если используется SMB 3.0 или новее. Для получения дополнительной информации о Samba и SMB 3.0 смотрите SMB 3.0 , чтобы проверить, соответствует ли ваша реализация Samba SMB 3.0.
- Общая сетевая папка SMB должна обеспечивать высокую доступность.
- Правильно настройте безопасность на SMB share. Следующий пример взят из
/etc/samba/smb.conf, гдеSQLData— название акции.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser
Инструкции
Выберите один из серверов для участия в конфигурации FCI. Это не имеет значения, какой из них.
Получите информацию о пользователе
mssql.sudo id mssqlОбратите внимание на
uid,gidа также группы.Выполните
sudo smbclient -L //NameOrIP/ShareName -U User.-
<NameOrIP>— это DNS-имя или IP-адрес сервера, на котором размещается общая папка SMB. -
<ShareName>— это имя общей папки SMB.
-
Для системных баз данных или любых данных, хранящихся в стандартном расположении данных, выполните следующие действия. В противном случае перейдите к шагу 5.
Убедитесь, что SQL Server остановлен на сервере, на котором вы работаете.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverПолностью переключитесь на суперпользователя.
sudo -iПереключитесь на пользователя
mssql.su mssqlСоздайте временный каталог для хранения данных и файлов журналов SQL Server.
mkdir <TempDir>-
<TempDir>— это имя папки. В следующем примере создается папка с именем/var/opt/mssql/tmp.
mkdir /var/opt/mssql/tmp-
Скопируйте данные и файлы журналов SQL Server во временный каталог.
cp /var/opt/mssql/data/* <TempDir>-
<TempDir>— это имя папки из предыдущего шага.
-
Проверьте наличие файлов в папке.
ls <TempDir><TempDir> — это имя папки из шага d.
Удалите файлы из существующего каталога данных SQL Server.
rm -f /var/opt/mssql/data/*Проверьте, что файлы больше не существуют.
ls /var/opt/mssql/dataEnter
exit, чтобы вернуться кrootпользователю.Установите общий ресурс SMB в папку данных SQL Server. В этом примере показан синтаксис для подключения к общему ресурсу SMB 3.0 на базе 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>— это имя сервера с SMB-ресурсом. -
<ShareName>— это название общей папки. -
<UserName>— это имя пользователя для доступа к общему ресурсу. -
<Password>— это пароль пользователя. -
<domain>— это имя Active Directory. -
<mssqlUID>— это UID пользователяmssql -
<mssqlGID>— это GIDmssqlпользователя
-
Проверьте крепление, используя
mountбез выключателей.mountПереключитесь на пользователя
mssql.su mssqlСкопируйте файлы из временного каталога
/var/opt/mssql/data.cp /var/opt/mssql/tmp/* /var/opt/mssql/dataПроверьте наличие файлов.
ls /var/opt/mssql/dataВведите
exit, чтобы оставить пользователяmssql.Введите
exit, чтобы оставить пользователяroot.Запустите SQL Server. Если вы всё скопировали и правильно применили безопасность, запускается SQL Server.
sudo systemctl start mssql-server sudo systemctl status mssql-serverДля дальнейшего тестирования создайте базу данных, чтобы обеспечить правильность разрешений. В следующем примере используется Transact-SQL; вы можете использовать SQL Server Management Studio (SSMS).
Остановите SQL Server и убедитесь, что он завершён. Если планируете добавлять или тестировать другие диски, не закрывайте SQL Server, пока не добавите и не протестируете их.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverЕсли закончили, снимите дезинг. В противном случае отключите после тестирования или добавления дисков.
sudo umount //<IPAddressorServerName>/<ShareName>/<FolderMountedIn>-
<IPAddressOrServerName>— это IP-адрес или имя узла SMB. -
<ShareName>— это название общей папки. -
<FolderMountedIn>— это имя папки, где подключен SMB.
-
Для объектов, отличных от системных баз данных, например пользовательских баз данных или резервных копий, выполните указанные ниже действия. Если вы используете только стандартное местоположение, перейдите к шагу 14.
Переключитесь на суперпользователя.
sudo -iСоздайте папку для использования SQL Server.
mkdir <FolderName><FolderName> — имя папки. Укажите полный путь папки, если она не в нужном месте. В следующем примере создается папка с именем
/var/opt/mssql/userdata.mkdir /var/opt/mssql/userdataУстановите общий ресурс SMB в папку данных SQL Server. В этом примере показан синтаксис для подключения к общему ресурсу SMB 3.0 на базе 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>— это имя сервера с SMB-ресурсом. -
<ShareName>— это название общей папки. -
<FolderName>— это имя папки, созданной на предыдущем шаге. -
<UserName>— это имя пользователя для доступа к общему ресурсу. -
<Password>— это пароль пользователя. -
<mssqlUID>— это UID пользователяmssql -
<mssqlGID>— это GIDmssqlпользователя.
-
Проверьте крепление, используя
mountбез выключателей.Входите
exit, чтобы выйти из суперпользователя.Создайте в этой папке базу данных для тестирования. В следующем примере используется
sqlcmdсоздание базы данных, переключение контекста, проверка существования файлов на уровне операционной системы и затем удаление временного местоположения. Можно также использовать SSMS.Отключите общую папку.
sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>-
<IPAddressOrServerName>— это IP-адрес или имя узла SMB. -
<ShareName>— это название общей папки. -
<FolderMountedIn>— это имя папки, где подключен SMB.
-
Повторите шаги на других узлах.
Теперь вы готовы настроить FCI.