Установка SQL Server с общей папкой SMB в качестве хранилищаInstall SQL Server with SMB fileshare storage

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server (только в Windows) нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server (Windows only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Начиная с выпуска SQL Server 2012 (11.x)SQL Server 2012 (11.x)системные базы данных (Master, Model, MSDB и TempDB) и пользовательские базы данных компонента Компонент Database EngineDatabase Engine можно установить, используя файловый сервер SMB в качестве хранилища.Starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x), system databases (Master, Model, MSDB, and TempDB), and Компонент Database EngineDatabase Engine user databases can be installed with Server Message Block (SMB) file server as a storage option. Это относится как к изолированному варианту установки SQL ServerSQL Server , так и к установке кластеров отработки отказа SQL ServerSQL Server .This applies to both SQL ServerSQL Server stand-alone and SQL ServerSQL Server failover cluster installations (FCI).

Примечание

Файловый поток в настоящее время не поддерживается в общей папке SMB.Filestream is currently not supported on an SMB file share.

Рекомендации по установкеInstallation considerations

Форматы общей папки SMB:SMB fileshare formats:

При указании общей папки SMB путь может быть указан в одном из следующих форматов UNC для изолированных баз данных и баз данных FCI:While specifying the SMB file share, the following are supported Universal Naming Convention (UNC) Path formats for standalone and FCI databases:

  • \\имя_сервера\имя_папки\\ServerName\ShareName\

  • \\имя_сервера\имя_папки\\ServerName\ShareName

Дополнительные сведения об универсальных именах (UNC) см. в статье UNC.For more information about Universal Naming Convention, see UNC.

Путь UNC замыкания на себя (путь UNC, где именем сервера является localhost, 127.0.0.1 или имя локального компьютера) не поддерживается.The loopback UNC path (a UNC path whose server name is localhost, 127.0.0.1, or the local machine name) is not supported. В качестве особого случая SQL ServerSQL Server с использованием кластера файлового сервера, размещенного на том же узле SQL ServerSQL Server , также не поддерживается.As a special case, SQL ServerSQL Server using File Server Cluster which is hosted on the same node SQL ServerSQL Server is running is also not supported. Чтобы предотвратить возникновение этой ситуации, рекомендуется создавать SQL ServerSQL Server и кластер файлового сервера на отдельных кластерах Windows.To prevent this situation, it is recommended that SQL ServerSQL Server and File Server Cluster to be created on separated Windows Clusters.

Указанные ниже форматы путей UNC не поддерживаются.The below UNC path formats are not supported:

  • Петлевой путь, например \\localhost\..\ или \\127.0.0.1\...Loopback path, e.g., \\localhost\..\ or \\127.0.0.1\...\

  • Административные общие папки, например \\servername\x$Administrative shares, e.g., \\servername\x$

  • Другие форматы путей UNC, такие как \\?\x:Other UNC path formats like \\?\x:\

  • Подключенные сетевые диски.Mapped network drives.

Поддерживаемые инструкции языка описания данных DDL.Supported data definition language (DDL) statements

Следующие инструкции Transact-SQLTransact-SQL DDL и хранимые процедуры компонента ядра СУБД поддерживают общие папки SMB.The following Transact-SQLTransact-SQL DDL statements and database engine stored procedures support SMB file shares:

  1. CREATE DATABASE (SQL Server Transact-SQL)CREATE DATABASE (SQL Server Transact-SQL)

  2. ALTER DATABASE (Transact-SQL)ALTER DATABASE (Transact-SQL)

  3. RESTORE (Transact-SQL)RESTORE (Transact-SQL)

  4. BACKUP (Transact-SQL)BACKUP (Transact-SQL)

Варианты установкиInstallation options

  • На странице "Настройка компонента ядра СУБД" пользовательского интерфейса программы настройки перейдите на вкладку "Каталоги данных" и задайте для параметра "Корневой каталог данных" значение "\\fileserver1\share1\"".In setup UI "Database Engine Configuration" page, "Data Directories" tab, set the parameter "Data root directory as "\\fileserver1\share1".

  • При установке из командной строки задайте для параметра "/INSTALLSQLDATADIR" значение "\\fileserver1\share1\"".In command prompt installation, specify the "/INSTALLSQLDATADIR" as "\\fileserver1\share1".

    Ниже представлен образец синтаксиса для установки SQL ServerSQL Server на отдельном сервере с использованием общей папки SMB.Here is the sample syntax to install SQL ServerSQL Server on a Standalone server using SMB file share option:

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<StrongPassword>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS  
    

    Установка экземпляра отказоустойчивого кластера SQL ServerSQL Server с одним узлом с компонентами Компонент Database EngineDatabase Engine и службами Службы Analysis ServicesAnalysis Services, экземпляр по умолчанию.To install a single-node SQL ServerSQL Server failover cluster instance with the Компонент Database EngineDatabase Engine and Службы Analysis ServicesAnalysis Services, default instance:

    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="xxxxxxxxxxx" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="xxxxxxxxxxx" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="xxxxxxxxxxx" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS  
    

    Дополнительные сведения об использовании различных параметров командной строки в SQL Server 2019SQL Server 2019см. в разделе Установка SQL Server 2016 из командной строки.For more information about the usage of various command line parameter options in SQL Server 2019SQL Server 2019, see Install SQL Server 2016 from the Command Prompt.

Рекомендации по операционным системам (сравнение протокола SMB и SQL ServerSQL Server)Operating system considerations (SMB Protocol vs. SQL ServerSQL Server)

В различных операционных системах Windows используются разные версии протокола SMB. Версия протокола SMB прозрачна для SQL ServerSQL Server.Different Windows operating systems has different SMB protocol versions, and the SMB protocol version is transparent to SQL ServerSQL Server. Можно выяснить информацию о преимуществах разных версий SMB в отношении SQL Server 2019SQL Server 2019.You can find the benefits of different SMB protocol versions with respect to SQL Server 2019SQL Server 2019.

Операционная системаOperating System Версия протокола SMB2SMB2 protocol version Преимущества для SQL ServerSQL ServerBenefits to SQL ServerSQL Server
Windows Server 2008Windows Server 2008 с пакетом обновления 2 (SP2)SP 2 2.02.0 Повышенная производительность по сравнению с предыдущими версиями SMB.Improved performance over previous SMB versions.

Устойчивость, которая помогает восстанавливать данные при временных проблемах в работе сети.Durability, which helps recover from temporary network glitches.
Windows Server 2008 R2Windows Server 2008 R2 с пакетом обновления 1 (SP1), включая Server CoreSP 1, including Server Core 2.12.1 Поддержка больших MTU, что позволяет передавать большой объем данных, например при резервном копировании и восстановлении SQL.Support for large MTU, which benefits large data transfers, such as SQL backup and restore. Эту возможность должен включить пользователь.This capability must be enabled by user. Дополнительные сведения о включении этой функции см. в разделе Новые возможности SMB (https://go.microsoft.com/fwlink/?LinkID=237319).For more details on how to enable this capability, see What's New in SMB (https://go.microsoft.com/fwlink/?LinkID=237319).

Значительные улучшения производительности, в частности для рабочих нагрузок SQL OLTP.Significant performance improvements, specifically for SQL OLTP style workloads. Эти улучшения производительности требуют применения исправления.These performance improvements require applying a hotfix. Дополнительные сведения об этом исправлении см. в этом разделе (https://go.microsoft.com/fwlink/?LinkId=237320).For more information on the hotfix, see this (https://go.microsoft.com/fwlink/?LinkId=237320).
Windows Server 2012Windows Server 2012, включая Server Core, including Server Core 3.03.0 Поддержка прозрачных обработок отказов общих папок с нулевым временем простоев и без необходимости вмешательства администраторов для изменения SQL DBA или администраторов файловых серверов для изменения конфигурации кластеров файловых серверов.Support for transparent failover of file shares providing zero downtime with no administrator intervention required for SQL DBA or file server administrator in file server cluster configurations.

Поддержка ввода-вывода с одновременным использованием нескольких сетевых интерфейсов, а также устойчивость к отказу сетевых интерфейсов.Support for IO using multiple network interfaces simultaneously, as well as tolerance to network interface failure.

Поддержка сетевых интерфейсов с возможностями RDMA.Support for network interfaces with RDMA capabilities.

Дополнительные сведения об этих возможностях и протоколе SMB см. в разделе Общие сведения о протоколе SMB (https://go.microsoft.com/fwlink/?LinkId=253174).For more information on these features and Server Message Block, see Server Message Block overview (https://go.microsoft.com/fwlink/?LinkId=253174).

Поддержка для сервера SoFS с постоянной доступностью.Support for Scale Out File Server (SoFS) with continuous availability.
Windows Server 2012Windows Server 2012 R2, включая Server CoreR2, including Server Core 3.23.2 Поддержка прозрачных обработок отказов общих папок с нулевым временем простоев и без необходимости вмешательства администраторов для изменения SQL DBA или администраторов файловых серверов для изменения конфигурации кластеров файловых серверов.Support for transparent failover of file shares providing zero downtime with no administrator intervention required for SQL DBA or file server administrator in file server cluster configurations.

Поддержка ввода-вывода с одновременным использованием нескольких сетевых интерфейсов, а также устойчивость к отказу сетевых интерфейсов с помощью SMB Multichannel.Support for IO using multiple network interfaces simultaneously, as well as tolerance to network interface failure, using SMB Multichannel.

Поддержка сетевых интерфейсов с возможностями с помощью SMB Direct.Support for network interfaces with RDMA capabilities using SMB Direct.

Дополнительные сведения об этих возможностях и протоколе SMB см. в разделе Общие сведения о протоколе SMB (https://go.microsoft.com/fwlink/?LinkId=253174).For more information on these features and Server Message Block, see Server Message Block overview (https://go.microsoft.com/fwlink/?LinkId=253174).

Поддержка для сервера SoFS с постоянной доступностью.Support for Scale Out File Server (SoFS) with continuous availability.

Оптимизировано для небольших произвольных операций ввода-вывода чтения и записи, обычных для SQL ServerSQL Server OLTP.Optimized for small random read/write I/O common to SQL ServerSQL Server OLTP.

Максимальный размер пакета (MTU) включен по умолчанию, что значительно повышает производительность в больших последовательных передачах, таких как хранилище данных SQL ServerSQL Server или резервное копирование и восстановление базы данных.Maximum Transmission Unit (MTU) is turned on by default, which significantly enhances performance in large sequential transfers like SQL ServerSQL Server data warehouse and database backup or restore.

Вопросы безопасностиSecurity considerations

  • Учетная запись службы SQL ServerSQL Server и учетная запись агента службы SQL ServerSQL Server должны иметь разрешения «Полный доступ» и разрешения NTFS для общих папок SMB.The SQL ServerSQL Server service account and SQL ServerSQL Server agent service account should have FULL CONTROL share permissions and NTFS permissions on the SMB share folders. При использовании файлового сервера SMB в качестве учетной записи службы SQL ServerSQL Server можно использовать учетную запись домена или системы.The SQL ServerSQL Server service account can be a domain account or a system account if an SMB file server is used. Дополнительные сведения о разрешениях для общей папки и NTFS см. в разделе Разрешения для общей папки и NTFS на файловом сервере (https://go.microsoft.com/fwlink/?LinkId=245535).For more information about share and NTFS permissions, see Share and NTFS Permissions on a File Server (https://go.microsoft.com/fwlink/?LinkId=245535).

    Примечание

    Полный доступ для общих папок и разрешения NTFS для общих папок SMB должны действовать только для учетной записи службы SQL ServerSQL Server , учетной записи службы агента SQL ServerSQL Server и пользователей Windows, которым назначена роль администратора сервера.The FULL CONTROL share permissions and NTFS permissions on the SMB share folders should be restricted to: SQL ServerSQL Server service account, SQL ServerSQL Server Agent service account and windows users with admin server roles.

    В качестве учетной записи службы SQL ServerSQL Server рекомендуется использовать учетную запись домена.It is recommended to use domain account as a SQL ServerSQL Server service account. Если в качестве учетной записи службы используется учетная запись системы, предоставьте разрешения для учетной записи компьютера в формате <имя_домена>\<имя_компьютера>*$*If system account is used as a service account, grant the permissions for the machine account in the format: <domain_name>\<computer_name>*$*.

    Примечание

    Если в качестве хранилища задана общая папка SMB, во время установки SQL ServerSQL Server в качестве учетной записи службы необходимо задать учетную запись домена.During SQL ServerSQL Server setup, it is required to specify domain account as a service account if SMB file share is specified as a storage option. При использовании общей папки SMB учетную запись системы можно задать в качестве учетной записи службы только после установки SQL ServerSQL Server .With SMB file share, System account can only be specified as a service account post SQL ServerSQL Server installation.

    Виртуальные учетные записи не могут проходить проверку подлинности в удаленном расположении.Virtual accounts cannot be authenticated to a remote location. Все виртуальные учетные записи используют разрешение локальной учетной записи.All virtual accounts use the permission of machine account. Укажите учетную запись компьютера в формате <имя_домена>\<имя_компьютера>*$*.Provision the machine account in the format <domain_name>\<computer_name>*$*.

  • Учетная запись, которая использовалась для установки SQL ServerSQL Server, при установке кластера должна иметь разрешение «Полный доступ» к общей папке SMB, используемой в качестве каталога данных, или к любым другим папкам данных (каталог пользовательской базы данных, каталог журналов пользовательской базы данных, папка TempDB, каталог журналов TempDB, папка резервного копирования).The account used to install SQL ServerSQL Server should have FULL CONTROL permissions on the SMB file share folder used as the data directory, or any other data folders (User database directory, user database log directory, TempDB directory, TempDB log directory, backup directory) during Cluster Setup.

  • Учетная запись, используемая для установки SQL ServerSQL Server , должна обладать правами SeSecurityPrivilege на файловом сервере SMB.The account used to install SQL ServerSQL Server should be granted SeSecurityPrivilege privileges on the SMB file server. Для предоставления этого права используйте консоль локальной политики безопасности на файловом сервере, чтобы добавить учетную запись установки SQL ServerSQL Server в политику управления журналом аудита и безопасности.To grant this privilege, use the Local Security Policy console on the file server to add the SQL ServerSQL Server setup account to the Manage auditing and security log policy. Этот параметр находится в разделе «Назначение прав пользователя» в узле «Локальные политики» консоли «Локальная политика безопасности».This setting is available in the User Rights Assignments section under Local Policies in the Local Security Policy console.

Известные проблемыKnown issues

  • После отсоединения базы данных SQL Server 2019SQL Server 2019 , которая находится в хранилище, подключенном к сети, при попытке повторного присоединения базы данных SQL ServerSQL Server возможны проблемы с разрешением доступа к базе данных.After you detach a SQL Server 2019SQL Server 2019 database that resides on network-attached storage, you might run into database permission issue while trying to reattach the SQL ServerSQL Server database. Эта проблема описывается в этой статье базы знаний (https://go.microsoft.com/fwlink/?LinkId=237321).The issue is defined in this KB article (https://go.microsoft.com/fwlink/?LinkId=237321). Информацию о решении этой проблемы см. в разделе Дополнительные сведения статьи из базы знаний.To work around this issue, see the More Information section in the KB article.

  • Если общая папка SMB используется в качестве хранилища для кластеризованного экземпляра SQL ServerSQL Server, то по умолчанию журнал диагностики отказоустойчивого кластера SQL ServerSQL Server не может быть записан в общий файловый ресурс, так как у библиотеки ресурсов SQL ServerSQL Server нет разрешения на чтение и запись в общий файловый ресурс.If SMB file share is used as a storage option for a clustered instance of SQL ServerSQL Server, by default the SQL ServerSQL Server Failover Cluster Diagnostics Log cannot be written to the file share because SQL ServerSQL Server Resource DLL lacks the read/write permission on the file share. Чтобы устранить эту проблему, попробуйте один из следующих методов.To resolve this issue, try one of the following methods:

    1. Предоставьте разрешения на чтение и запись в общей папке всем объектам-компьютерам в кластере.Grant read/write permissions on the file share to all computer objects in the cluster.

    2. Задайте в качестве расположения журналов диагностики локальный путь к файлу.Set the location of the diagnostic logs to a local file path. См. следующий пример.See the following example:

      ALTER SERVER CONFIGURATION  
      SET DIAGNOSTICS LOG PATH = 'C:\logs';  
      

См. также разделSee also

Планирование установки SQL Server Planning a SQL Server Installation
Настройка учетных записей службы Windows и разрешенийConfigure Windows Service Accounts and Permissions