Поделиться через


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

Область применения: SQL Server — только Для Windows

Начиная с SQL Server 2012 (11.x), системные базы данных (master, model, msdb и tempdb) и ядро СУБД пользовательские базы данных можно установить с файловым сервером блока сообщений сервера (SMB) в качестве варианта хранения. Это относится как к автономным, так и к установкам отказоустойчивого кластера SQL Server (FCI).

Примечание.

Файловый поток в настоящее время не поддерживается в общей папке SMB.

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

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

При указании общей папки SMB путь может быть указан в одном из следующих форматов UNC для изолированных баз данных и баз данных FCI:

  • \\ServerName\ShareName\

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

Дополнительные сведения об универсальных именах (UNC) см. в статье UNC.

Путь 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.

  1. CREATE DATABASE (SQL Server Transact-SQL)

  2. ALTER DATABASE (Transact-SQL)

  3. RESTORE (Transact-SQL)

  4. BACKUP (Transact-SQL)

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

  • На странице "Настройка компонента ядра СУБД" пользовательского интерфейса программы настройки перейдите на вкладку "Каталоги данных" и задайте для параметра "Корневой каталог данных" значение "\\fileserver1\share1".

  • При установке из командной строки задайте для параметра "/INSTALLSQLDATADIR" значение "\\fileserver1\share1".

    Ниже приведен пример синтаксиса для установки SQL Server на автономном сервере с помощью параметра общей папки SMB:

    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 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="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 см. в разделе "Установка SQL Server 2016" из командной строки.

Рекомендации по операционной системе (протокол SMB vs. SQL Server)

Разные операционные системы Windows имеют разные версии протокола SMB, а версия протокола SMB является прозрачной для SQL Server. Преимущества различных версий протокола SMB можно найти в отношении SQL Server.

Операционная система Версия протокола SMB2 Преимущества SQL Server
Windows Server 2008 с пакетом обновления 2 (SP 2) 2.0 Повышенная производительность по сравнению с предыдущими версиями SMB.

Устойчивость, которая помогает восстанавливать данные при временных проблемах в работе сети.
Windows Server 2008 R2 с пакетом обновления 1 (SP1), включая серверную ядро 2.1 Поддержка больших MTU, что позволяет передавать большой объем данных, например при резервном копировании и восстановлении SQL. Эту возможность должен включить пользователь. Дополнительные сведения о включении этой возможности см. в статье Новые возможности SMB (https://go.microsoft.com/fwlink/?LinkID=237319).

Значительные улучшения производительности, в частности для рабочих нагрузок SQL OLTP. Эти улучшения производительности требуют применения исправления. Дополнительные сведения об этом исправлении см. в этом разделе (https://mskb.pkisolutions.com/kb/2536493).
Windows Server 2012, включая серверную ядро 3.0 Поддержка прозрачных обработок отказов общих папок с нулевым временем простоев и без необходимости вмешательства администраторов для изменения SQL DBA или администраторов файловых серверов для изменения конфигурации кластеров файловых серверов.

Поддержка ввода-вывода с одновременным использованием нескольких сетевых интерфейсов, а также устойчивость к отказу сетевых интерфейсов.

Поддержка сетевых интерфейсов с возможностями RDMA.

Дополнительные сведения об этих возможностях и протоколе SMB см. в разделе Общие сведения о протоколе SMB (https://go.microsoft.com/fwlink/?LinkId=253174).

Поддержка для сервера SoFS с горизонтальным увеличением масштаба и постоянной доступностью.
Windows Server 2012 R2, включая серверную ядро 3.2 Поддержка прозрачных обработок отказов общих папок с нулевым временем простоев и без необходимости вмешательства администраторов для изменения SQL DBA или администраторов файловых серверов для изменения конфигурации кластеров файловых серверов.

Поддержка ввода-вывода с одновременным использованием нескольких сетевых интерфейсов, а также устойчивость к отказу сетевых интерфейсов с помощью SMB Multichannel.

Поддержка сетевых интерфейсов с возможностями с помощью SMB Direct.

Дополнительные сведения об этих возможностях и протоколе SMB см. в разделе Общие сведения о протоколе SMB (https://go.microsoft.com/fwlink/?LinkId=253174).

Поддержка для сервера SoFS с горизонтальным увеличением масштаба и постоянной доступностью.

Оптимизировано для небольших случайных операций чтения и записи операций ввода-вывода в SQL Server OLTP.

Максимальная единица передачи (MTU) включена по умолчанию, что значительно повышает производительность в больших последовательных передачах, таких как хранилище данных SQL Server и резервное копирование базы данных или восстановление.

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

  • Учетная запись службы SQL Server и учетная запись службы агента SQL Server должны иметь разрешения для общего ресурса FULL CONTROL и разрешения NTFS в папках общего ресурса SMB. Учетная запись службы SQL Server может быть учетной записью домена или системной учетной записью, если используется файловый сервер SMB. Дополнительные сведения о разрешениях для общей папки и NTFS см. в статье Разрешения для общей папки и NTFS на файловом сервере (https://go.microsoft.com/fwlink/?LinkId=245535).

    Примечание.

    Разрешения для общего ресурса FULL CONTROL и разрешения NTFS для папок общего ресурса SMB должны быть ограничены: учетной записью службы SQL Server, агент SQL Server учетной записью службы и пользователями Windows с ролями сервера администрирования.

    Рекомендуется использовать учетную запись домена в качестве учетной записи службы SQL Server. Если в качестве учетной записи службы используется учетная запись системы, предоставьте разрешения для учетной записи компьютера в формате <<имя_домена>>\<<имя_компьютера>>*$*.

    Примечание.

    Во время установки SQL Server необходимо указать учетную запись домена в качестве учетной записи службы, если общий файловый ресурс SMB указан в качестве параметра хранилища. С помощью общей папки SMB учетная запись системы может быть указана только в качестве учетной записи службы после установки SQL Server.

    Виртуальные учетные записи не могут проходить проверку подлинности в удаленном расположении. Все виртуальные учетные записи используют разрешение локальной учетной записи. Укажите учетную запись компьютера в формате <имя_домена>\<имя_компьютера>*$*.

  • Учетная запись, используемая для установки SQL Server, должна иметь разрешения FULL CONTROL в папке общего ресурса SMB, используемой в качестве каталога данных, или любых других папок данных (каталог пользовательской базы данных, каталог журнала пользователя, каталог tempdb, каталог журнала tempdb, каталог резервного копирования) во время установки кластера.

  • Учетная запись, используемая для установки SQL Server, должна быть предоставлена привилегиям SeSecurityPrivilege на файловом сервере SMB. Чтобы предоставить это разрешение, используйте консоль локальной политики безопасности на файловом сервере, чтобы добавить учетную запись установки SQL Server в политику Управление журналом аудита и безопасности. Этот параметр находится в разделе Назначение прав пользователя в узле Локальные политики консоли Локальная политика безопасности .

Известные проблемы и ограничения

  • После отключения базы данных SQL Server, которая находится в подключенном к сети хранилище, при попытке повторного кэширования базы данных SQL Server может возникнуть проблема с разрешением базы данных. См. дополнительные сведения об ошибке 5120.

  • Если общий ресурс SMB используется в качестве хранилища для кластеризованного экземпляра SQL Server, по умолчанию журнал диагностики отказоустойчивого кластера SQL Server не может быть записан в общую папку, так как БИБЛИОТЕКА ресурсов SQL Server не имеет разрешения на чтение и запись в общей папке. Чтобы устранить эту проблему, попробуйте один из следующих методов.

    1. Предоставьте разрешения на чтение и запись в общей папке всем объектам-компьютерам в кластере.

    2. Задайте в качестве расположения журналов диагностики локальный путь к файлу. См. следующий пример.

      ALTER SERVER CONFIGURATION  
      SET DIAGNOSTICS LOG PATH = 'C:\logs';  
      
  • При размещении файлов данных SQL Server в общих папках SMB все операции ввода-вывода для файлов будут проходить через сетевой интерфейс на сервере или виртуальной машине. Убедитесь, что пропускной способности сети хватает для поддержки операций ввода-вывода, необходимых для рабочей нагрузки.

  • Недоступность файлового ресурса, в котором размещаются файлы данных SQL Server из-за проблем с сетевым подключением или других сбоев, может привести к задержкам ввода-вывода или сбоям в SQL Server. Для критически важных рабочих нагрузок убедитесь, что для сети и общей папки предусмотрена избыточность, и что файловый ресурс поддерживает прозрачную отработку отказа SMB 3.0, также известную как постоянная доступность.

См. также

Планирование установки SQL Server
Настройка учетных записей службы Windows и разрешений