Установка SQL Server с общей папкой SMB в качестве хранилища
Область применения: SQL Server — только Для Windows
В SQL Server 2012 (11.x) и более поздних версиях системные базы данных (master
, model
, msdb
и tempdb
) и пользовательские базы данных ядра СУБД можно установить с использованием файлового сервера SMB в качестве варианта хранения. Это относится как к автономным, так и к установкам отказоустойчивого кластера SQL Server (FCI).
Примечание.
FILESTREAM в настоящее время не поддерживается в общей папке SMB.
Рекомендации по установке
Форматы общих папок SMB
При указании общей папки SMB поддерживаются следующие форматы путей по универсальному соглашению об именовании (UNC) для автономных баз данных и баз данных FCI:
\\ServerName\ShareName\
\\ServerName\ShareName
Для получения дополнительной информации см. в разделе Универсальная конвенция именований.
Циклический UNC-путь (UNC-путь, имя сервера которого — localhost, 127.0.0.1
или имя локального компьютера) не поддерживается. В качестве специального случая SQL Server с кластером файлового сервера, размещенным на том же узле, что и SQL Server, также не поддерживается. Чтобы предотвратить эту ситуацию, необходимо создать SQL Server и кластер файлового сервера в отдельных кластерах Windows.
Следующие форматы пути UNC не поддерживаются:
- путь обратной связи, например
\\localhost\...\
или\\127.0.0.1\...\
- административные общие папки, например
\\servername\x$
; - другие форматы UNC-путей, например
\\?\x:\
. - Сопоставленные сетевые диски
Поддерживаемые инструкции языка описания данных DDL.
Следующие инструкции DDL Transact-SQL и хранимые процедуры ядра СУБД поддерживают общие папки SMB.
Варианты установки
На интерфейсе настройки на странице конфигурации ядра базы данных на вкладке Каталоги данных установите параметр Корневой каталог данных как
\\<FileServer>\<Share1>\
. Замените<FileServer>
и<Share1>
значениями из среды.В установке командной строки укажите
/INSTALLSQLDATADIR
как\\<FileServer>\<Share1>\
.Ниже приведен пример синтаксиса для установки SQL Server на автономном сервере с помощью параметра общей папки SMB:
Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS
Начиная с SQL Server 2022 (16.x), ознакомьтесь с условиями лицензионного соглашения на программное обеспечение Microsoft SQL Server на aka.ms/useterms.
Чтобы установить экземпляр отказоустойчивого кластера SQL Server с одним узлом с СУБД и службами Analysis Services, экземпляр по умолчанию.
setup.exe /q /ACTION=InstallFailoverCluster /InstanceName=MSSQLSERVER /INDICATEPROGRESS /ASSYSADMINACCOUNTS="<DomainName\UserName>" /ASDATADIR=<Drive>:\OLAP\Data /ASLOGDIR=<Drive>:\OLAP\Log /ASBACKUPDIR=<Drive>:\OLAP\Backup /ASCONFIGDIR=<Drive>:\OLAP\Config /ASTEMPDIR=<Drive>:\OLAP\Temp /FAILOVERCLUSTERDISKS="<Cluster Disk Resource Name - for example, 'Disk S:'" /FAILOVERCLUSTERNETWORKNAME="<Insert Network Name>" /FAILOVERCLUSTERIPADDRESSES="IPv4;xx.xxx.xx.xx;Cluster Network;xxx.xxx.xxx.x" /FAILOVERCLUSTERGROUP="MSSQLSERVER" /Features=AS,SQL /ASSVCACCOUNT="<DomainName\UserName>" /ASSVCPASSWORD="<password>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS
Дополнительные сведения об использовании различных параметров командной строки в SQL Server см. в разделе Установка и настройка SQL Server в Windows из командной строки.
Примечание.
Пароли должны соответствовать политике паролей по умолчанию SQL Server . По умолчанию пароль должен содержать по крайней мере восемь символов и содержать символы из трех из следующих четырех наборов: прописные буквы, строчные буквы, цифры base-10 и символы. Пароли могут содержать до 128 символов. Используйте пароли, которые являются максимально длинными и сложными.
Рекомендации по операционной системе (протокол SMB vs. SQL Server)
Разные операционные системы Windows имеют разные версии протокола SMB, а версия протокола SMB является прозрачной для SQL Server. Преимущества различных версий протокола SMB можно найти в отношении SQL Server.
Операционная система | Версия протокола SMB2 | Преимущества SQL Server |
---|---|---|
Windows Server 2012 и более поздних версий, включая Server Core | 3.0 | Поддержка прозрачного аварийного переключения общих ресурсов с отсутствием времени простоя, не требующее вмешательства администратора базы данных или администратора файлового сервера в конфигурациях кластера файлового сервера. Поддержка операций ввода-вывода с использованием нескольких сетевых интерфейсов одновременно и отказоустойчивости к сбою сетевого интерфейса. Поддержка сетевых интерфейсов с возможностями RDMA. Дополнительные сведения об этих функциях и блоке сообщений сервера см. в обзоре блока сообщений сервера. Поддержка сервера Scale Out File Server (SoFS) с горизонтальным масштабированием и постоянной доступностью. |
Windows Server 2012 R2 и более поздних версий, включая серверное ядро | 3.2 | Поддержка прозрачной отработки отказа общих папок с нулевым временем простоя без вмешательства администратора базы данных или администратора файлового сервера в конфигурациях кластера файлового сервера. Поддержка операций ввода-вывода с помощью нескольких сетевых интерфейсов одновременно и отказоустойчивости к сбою сетевого интерфейса с помощью SMB Multichannel. Поддержка сетевых интерфейсов с RDMA-функциями с использованием SMB Direct. Дополнительные сведения об этих функциях и блоке сообщений сервера см. в обзоре блока сообщений сервера. Поддержка масштабируемого файлового сервера (SoFS) с постоянной доступностью. Оптимизировано для небольших случайных операций чтения и записи, распространенных для рабочих нагрузок типа транзакций SQL Server. Максимальная единица передачи (MTU) включена по умолчанию, что значительно повышает производительность в больших последовательных передачах, таких как хранилище данных SQL Server и резервное копирование базы данных или восстановление. |
Вопросы безопасности
Учетная запись службы SQL Server и учетная запись службы агента SQL Server должны иметь
FULL CONTROL
разрешения на доступ к общим ресурсам и разрешения NTFS в папках общего доступа SMB. Учетная запись службы SQL Server может быть учетной записью домена или системной учетной записью, если используется файловый сервер SMB. Дополнительные сведения о разрешениях общего доступа и NTFS см. в разделе Разрешения для общего доступа и NTFS на файловом сервере.Примечание.
FULL CONTROL
разрешения общего доступа и разрешения NTFS для папок общего ресурса SMB должны быть ограничены для учетных записей службы SQL Server, службы агента SQL Server и пользователей Windows с ролями администратора сервера.Используйте учетную запись домена в качестве учетной записи службы SQL Server. Если системная учетная запись используется в качестве учетной записи службы, предоставьте разрешения для учетной записи компьютера в формате
<domain-name>\<computer-name>*$*
.Примечание.
Во время установки SQL Server необходимо указать учетную запись домена в качестве учетной записи службы, если общая папка SMB указана в качестве параметра хранилища. С помощью общей папки SMB учетная запись
System
может быть указана только в качестве учетной записи службы после установки SQL Server.Виртуальные учетные записи невозможно аутентифицировать на удаленной локации. Все виртуальные учетные записи используют разрешение учетной записи компьютера. Подготовьте учетную запись компьютера в формате
<domain-name>\<computer-name>*$*
.Учетная запись, используемая для установки SQL Server, должна иметь разрешения FULL CONTROL в папке общего ресурса SMB, используемой в качестве каталога данных, или любых других папок данных (каталог пользовательской базы данных, каталог журнала пользователя,
tempdb
каталог журналов базы данных пользователя, каталог журнала tempdb, каталог резервного копирования) во время установки кластера.Учетная запись, используемая для установки SQL Server, должна обладать привилегиями
SeSecurityPrivilege
на файловом сервере SMB. Чтобы предоставить эту привилегию, используйте консоль локальной политики безопасности на файловом сервере, чтобы добавить учетную запись установки SQL Server в политику Управление аудитом и журналом безопасности. Этот параметр доступен в разделе назначения прав пользователя в разделе Локальные политики.
Известные проблемы и ограничения
После отключения базы данных SQL Server, которая находится в подключенном к сети хранилище, при попытке повторного подключения к базе данных SQL Server могут возникнуть проблемы с разрешениями базы данных. См. дополнительные сведения об ошибке 5120.
Если файловый ресурс SMB используется в качестве параметра хранилища для кластеризованного экземпляра SQL Server, по умолчанию журнал диагностики отказоустойчивого кластера SQL Server не может быть записан в общую папку, так как библиотека DLL ресурсов SQL Server не имеет разрешения на чтение и запись в общей папке. Чтобы устранить эту проблему, попробуйте один из следующих методов.
Предоставьте разрешения на чтение и запись в общей папке всем объектам-компьютерам в кластере.
Задайте в качестве расположения журналов диагностики локальный путь к файлу. См. следующий пример.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG PATH = 'C:\logs';
При размещении файлов данных SQL Server в общих папках SMB все операции ввода-вывода для файлов проходят через сетевой интерфейс на сервере или виртуальной машине. Убедитесь, что для поддержки ввода-вывода, требуемого рабочей нагрузкой, достаточно пропускной способности сети.
Недоступность файлового ресурса, в котором размещаются файлы данных SQL Server из-за проблем с сетевым подключением или других сбоев, может привести к задержкам ввода-вывода или сбоям в SQL Server. Для критически важных рабочих нагрузок убедитесь, что в сети и общем ресурсе предусмотрена избыточность, а общий ресурс поддерживает SMB 3.0 с прозрачной отработкой отказа, также известный как непрерывная доступность.