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


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

Начиная с SQL Server 2012 г. системные базы данных (Master, Model, MSDB и TempDB) и пользовательские базы данных ядра СУБД можно устанавливать с файловым сервером SMB в качестве хранилища. Это относится как к изолированному варианту установки SQL Server , так и к установке кластеров отработки отказа SQL Server .

Примечание

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

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

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

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

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

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

Дополнительные сведения об универсальном соглашении об именовании см. в разделе UNC (https://go.microsoft.com/fwlink/?LinkId=245534).

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

  5. sp_attach_db (Transact-SQL)

  6. sp_attach_single_file_db (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 с одним узлом с компонентами Компонент 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 2014 см. в статье Установка SQL Server 2014 из командной строки.

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

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

Операционная система Версия протокола 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://go.microsoft.com/fwlink/?LinkId=237320).
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 рекомендуется использовать учетную запись домена. Если в качестве учетной записи службы используется системная учетная запись, предоставьте разрешения для учетной записи компьютера в формате domain_name<>\<computer_name>$.

    Примечание

    • Если в качестве хранилища задана общая папка SMB, во время установки SQL Server в качестве учетной записи службы необходимо задать учетную запись домена. При использовании общей папки SMB учетную запись системы можно задать в качестве учетной записи службы только после установки SQL Server .
    • Виртуальные учетные записи не могут проходить проверку подлинности в удаленном расположении. Все виртуальные учетные записи используют разрешение локальной учетной записи. Укажите учетную запись компьютера в формате <имя_домена>\<имя_компьютера>$.
  • Учетная запись, используемая для установки SQL Server, должна иметь разрешения FULL CONTROL на общую папку SMB, используемую в качестве каталога данных, или любые другие папки данных (каталог базы данных пользователя, каталог журналов пользовательской базы данных, каталог TempDB, каталог журналов TempDB, каталог резервного копирования) во время установки кластера.

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

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

  • После отсоединения базы данных SQL Server 2014, которая находится в подключенном к сети хранилище, при попытке повторно подключить базу данных SQL Server может возникнуть проблема с разрешениями. Эта проблема описана в этой статье базы знаний (https://go.microsoft.com/fwlink/?LinkId=237321). Информацию о решении этой проблемы см. в разделе Дополнительные сведения статьи из базы знаний.

  • Некоторые решения сторонних разработчиков, например устройство NetApp, не поддерживают все вызовы API SQL Server. С их помощью вы можете получить следующее:
    2015-06-04 13:14:19.97 spid9s Ошибка: 17053, серьезность: 16, состояние: 1.
    2015-06-04 13:14:19.97 spid9s DoDevIoCtlOut() GetOverlappedResult() : возникла ошибка операционной системы 1(Неправильная функция.).

    Для файловой системы NTFS эта ошибка неопасна, но в случае с ReFS она может привести к существенному снижению производительности.

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

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

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

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

См. также:

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