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

Применимо к:SQL Server — только Windows

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

Примечание

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

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

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

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

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

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

Дополнительные сведения об универсальных именах (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 с одним узлом с компонентами Компонент Database Engine и службами Службы 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 и SQL Server)

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

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

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

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

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

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

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

Поддержка для сервера SoFS с горизонтальным увеличением масштаба и постоянной доступностью.
Windows Server 2012 R2, включая Server Core 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 должны иметь разрешения «Полный доступ» и разрешения NTFS для общих папок SMB. При использовании файлового сервера SMB в качестве учетной записи службы SQL Server можно использовать учетную запись домена или системы. Дополнительные сведения о разрешениях для общей папки и NTFS см. в статье Разрешения для общей папки и NTFS на файловом сервере (https://go.microsoft.com/fwlink/?LinkId=245535).

    Примечание

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

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

    Примечание

    Если в качестве хранилища задана общая папка SMB, во время установки SQL Server в качестве учетной записи службы необходимо задать учетную запись домена. При использовании общей папки 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 и разрешений