Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
В этой статье описывается, как настроить хранилище SMB для экземпляра отказоустойчивого кластера в Linux.
В мире, отличном от Windows, SMB также называется общей файловой системой Интернета (CIFS) и реализуется через Samba. В мире Windows доступ к общей папке SMB выполняется следующим образом: \\SERVERNAME\SHARENAME При установке SQL Server в Linux общий ресурс SMB должен быть подключен в качестве папки.
Важные сведения об источнике и сервере
Ниже приведены некоторые советы и замечания по успешному использованию SMB.
- Общая папка SMB может находиться в Windows, Linux или даже на оборудовании, до тех пор пока она использует SMB 3.0 или более позднюю версию. См. дополнительные сведения о Samba и SMB 3.0 в описании SMB 3.0, чтобы узнать, соответствует ли ваша реализация Samba требованиям SMB 3.0.
- Общая сетевая папка SMB должна обеспечивать высокую доступность.
- Безопасность общего ресурса SMB должна быть надлежащим образом обеспечена. Ниже приведен пример из
/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/dataВведите 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, но вы можете использовать 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.