次の方法で共有


SQL Server をストレージ オプションとして SMB ファイル共有にインストールする

2012 SQL Server以降、システム データベース (Master、Model、MSDB、TempDB)、およびデータベース エンジン のユーザー データベースは、サーバー メッセージ ブロック (SMB) ファイル サーバーをストレージ オプションとしてインストールできます。 これは、 SQL Server スタンドアロン インストールと SQL Server フェールオーバー クラスター インストール (FCI) の両方に当てはまります。

注意

Filestream は現在、SMB ファイル共有ではサポートされていません。

インストールに関する考慮事項

SMB ファイル共有の形式:

SMB ファイル共有を指定する際にスタンドアロンおよび FCI データベースでサポートされる汎用名前付け規則 (SMB) パスの形式を次に示します。

  • \\ServerName\ShareName\

  • \\ServerName\ShareName

汎用名前付け規則の詳細については、「 UNC (https://go.microsoft.com/fwlink/?LinkId=245534)」を参照してください。

ループバック UNC パス (サーバー名が localhost、127.0.0.1、またはローカル コンピューター名である UNC パス) はサポートされません。 特別なケースとして、 SQL Server と同じノードでホストされたファイル サーバー クラスターを使用している SQL Server もサポートされません。 この状況を避けるため、 SQL Server とファイル サーバー クラスターは、別個の Windows クラスターに作成することをお勧めします。

次の UNC パス形式はサポートされていません。

  • ループバック パス、たとえば、\\localhost\..\ または \\127.0.0.1\...\

  • 管理用共有 (\\servername\x$ など)

  • その他の形式の UNC パス (\\?\x:\ など)

  • 割り当て済みのネットワーク ドライブ

サポートされるデータ定義言語 (DDL) ステートメント

SMB ファイル共有をサポートする Transact-SQL DDL ステートメントおよびデータベース エンジン ストアド プロシージャを次に示します。

  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)

インストール オプション

  • セットアップ UI の [データベース エンジンの構成] ページの [データ ディレクトリ] タブで、[データ ルート ディレクトリ] パラメーターを "\\fileserver1\share1" に設定します。

  • コマンド プロンプトでインストールする場合、"/INSTALLSQLDATADIR" に "\\fileserver1\share1" を指定します。

    次に、SMB ファイル共有オプションを使ってスタンドアロン サーバーに SQL Server をインストールするためのサンプル構文を示します。

    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 および データベース エンジン が配置された単一ノードの 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に対して透過的です。 SQL Server 2014 に関して、さまざまな SMB プロトコル バージョンの利点を確認できます。

オペレーティング システム SMB2 プロトコルのバージョン に対するメリット SQL Server
Windows Server 2008 SP 2 2.0 従来のバージョンの SMB よりもパフォーマンスに優れています。

持続性が高いため、一時的なネットワーク障害もスムーズに復旧できます。
Windows Server 2008 R2 SP 1 (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 またはファイル サーバー管理者に必要な、ファイル共有の透過的フェールオーバー (管理者の操作が不要でダウンタイムが発生しないフェールオーバー) をサポートします。

複数のネットワーク インターフェイスを同時使用する IO をサポートします。また、ネットワーク インターフェイスの障害に対する耐性も優れています。

RDMA 機能を備えたネットワーク インターフェイスをサポートします。

これらの機能およびサーバー メッセージ ブロックの詳細については、「サーバー メッセージ ブロックの概要」(https://go.microsoft.com/fwlink/?LinkId=253174) を参照してください。

継続的可用性機能を備えたスケールアウト ファイル サーバー (SoFS) をサポートします。
Windows Server 2012 R2 (Server Core を含む) 3.2 ファイル サーバー クラスター構成の SQL DBA またはファイル サーバー管理者に必要な、ファイル共有の透過的フェールオーバー (管理者の操作が不要でダウンタイムが発生しないフェールオーバー) をサポートします。

複数のネットワーク インターフェイスを同時使用する IO をサポートします。また、ネットワーク インターフェイスの障害に対する耐性も優れています (SMB マルチチャネルを使用した場合)。

RDMA 機能を備えたネットワーク インターフェイスをサポートします (SMB ダイレクトを使用した場合)。

これらの機能およびサーバー メッセージ ブロックの詳細については、「サーバー メッセージ ブロックの概要」(https://go.microsoft.com/fwlink/?LinkId=253174) を参照してください。

継続的可用性機能を備えたスケールアウト ファイル サーバー (SoFS) をサポートします。

SQL Server OLTP に共通する小規模なランダム読み取り/書き込み I/O 向けに最適化されます。

最大転送単位 (MTU) が既定で有効になっています。これにより、 SQL Server データ ウェアハウス、データベースのバックアップと復元など、大規模なシーケンシャル転送のパフォーマンスが大幅に向上します。

セキュリティに関する考慮事項

  • SQL Server サービス アカウントと SQL Server エージェント サービス アカウントには、SMB 共有フォルダーに対するフル コントロールの共有権限と NTFS 権限が必要です。 SMB ファイル サーバーを使用する場合、ドメイン アカウントまたはシステム アカウントを SQL Server サービス アカウントにすることができます。 共有および NTFS アクセス許可の詳細については、「ファイル サーバーの共有および NTFS アクセス許可」 (https://go.microsoft.com/fwlink/?LinkId=245535) を参照してください。

    注意

    SMB 共有フォルダーに対する FULL CONTROL 共有アクセス許可と NTFS アクセス許可は、SQL Serverサービス アカウント、SQL Server エージェントサービス アカウント、管理者サーバーロールを持つ Windows ユーザーに制限する必要があります。

    ドメイン アカウントを SQL Server サービス アカウントとして使用することをお勧めします。 システム アカウントがサービス アカウントとして使用されている場合は、マシン アカウントのアクセス許可を domain_namecomputer_name<>$\>の形式<で付与します。

    注意

    • SQL Server セットアップで、ストレージ オプションとして SMB ファイル共有を指定した場合は、ドメイン アカウントをサービス アカウントとして指定する必要があります。 SMB ファイル共有を使用する場合、システム アカウントは SQL Server のインストール後にのみサービス アカウントとして指定することができます。
    • 仮想アカウントでは、リモートの場所へアクセスすることはできません。 どの仮想アカウントも、コンピューター アカウントの権限を使用します。 <domain_name>\<computer_name>$ の形式でコンピューター アカウントをプロビジョニングしてください。
  • クラスターのセットアップ中に、SQL Serverのインストールに使用するアカウントには、データ ディレクトリとして使用される SMB ファイル共有フォルダー、またはその他のデータ フォルダー (ユーザー データベース ディレクトリ、ユーザー データベース ログ ディレクトリ、TempDB ディレクトリ、TempDB ログ ディレクトリ、バックアップ ディレクトリ) に対する FULL CONTROL アクセス許可が必要です。

  • SQL Server のインストールに使用するアカウントには、SMB ファイル サーバーに対する SeSecurityPrivilege 特権を付与する必要があります。 この特権を付与するには、ファイル サーバーで [ローカル セキュリティ ポリシー] コンソールを使用して、監査とセキュリティ ログの管理ポリシーに SQL Server セットアップ アカウントを追加します。 この設定は、[ローカル セキュリティ ポリシー] コンソールの [ローカル ポリシー] にある [ユーザー権利の割り当て] セクションで行うことができます。

既知の問題

  • ネットワーク接続ストレージに存在するSQL Server 2014 データベースをデタッチした後、SQL Server データベースの再アタッチ中にデータベースのアクセス許可の問題が発生する可能性があります。 この問題は、 この KB 記事 (https://go.microsoft.com/fwlink/?LinkId=237321) で定義されています。 この問題を回避するには、このサポート技術情報の「 詳細 」を参照してください。

  • NetApp デバイスなど、いくつかのサード パーティは、すべての SQL Server API 呼び出しをサポートしているわけではありません。 これらを使用すると、次の情報が得られる場合があります。
    2015-06-04 13:14:19.97 spid9s エラー: 17053、重大度: 16、状態: 1。
    2015-06-04 13:14:19.97 spid9s DoDevIoCtlOut() GetOverlappedResult() : オペレーティング システム エラー 1 (関数が正しくありません。) が発生しました。

    Ntfs では、エラーは問題ありません。 しかし ReFS の場合、パフォーマンスが大幅に低下する可能性があります。

  • SQL Serverのクラスター化されたインスタンスのストレージ オプションとして SMB ファイル共有が使用されている場合、 SQL Server Resource DLL にはこのファイル共有に対する読み取り/書き込み権限がないため、既定では、 SQL Server フェールオーバー クラスター診断ログをファイル共有に書き込むことができません。 この問題を解決するには、次のいずれかの方法を試してください。

    1. ファイル共有に対する読み取り/書き込み権限をクラスター内のすべてのコンピューター オブジェクトに付与する。

    2. 診断ログの場所をローカル ファイル パスに設定する。 次の例を参照してください。

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

参照

SQL Server のインストール計画
インストール方法に関するトピック
Windows サービス アカウントと権限の構成