適用対象:SQL Server - Windows only
SQL Server 2012 (11.x) 以降のバージョンでは、システム データベース (master
、 model
、 msdb
、 tempdb
)、およびデータベース エンジン ユーザー データベースを、サーバー メッセージ ブロック (SMB) ファイル サーバーをストレージ オプションとしてインストールできます。 これは、 SQL Server スタンドアロン インストールと SQL Server フェールオーバー クラスター インストール (FCI) の両方に当てはまります。
注
現在、FILESTREAM は SMB ファイル共有ではサポートされていません。
インストールに関する注意点
SMB ファイル共有形式
SMB ファイル共有を指定する場合、スタンドアロン データベースと FCI データベースでは、次の値が汎用名前付け規則 (UNC) パス形式でサポートされます。
\\ServerName\ShareName\
\\ServerName\ShareName
詳細については、「 汎用名前付け規則」を参照してください。
ループバック UNC パス (サーバー名が localhost、 127.0.0.1
、またはローカル コンピューター名の UNC パス) はサポートされていません。 特殊なケースとして、SQL Server と同じノードでホストされているファイル サーバー クラスターを持つ SQL Server もサポートされていません。 このような状況を回避するには、分離された Windows クラスターに SQL Server とファイル サーバー クラスターを作成する必要があります。
次の UNC パス形式はサポートされていません。
- Loopback パス (
\\localhost\...\
や\\127.0.0.1\...\
など) - 管理用共有 (
\\servername\x$
など) - その他の形式の UNC パス (
\\?\x:\
など) - マップ済みネットワーク ドライブ
サポートされるデータ定義言語 (DDL) ステートメント
SMB ファイル共有をサポートする Transact-SQL DDL ステートメントおよびデータベース エンジン ストアド プロシージャを次に示します。
インストール オプション
セットアップ ユーザー インターフェイスの [ データベース エンジンの構成] ページの [ データ ディレクトリ ] タブで、パラメーターの [データ ルート ディレクトリ ] を
\\<FileServer>\<Share1>\
として設定します。<FileServer>
と<Share1>
を環境の値に置き換えます。コマンド プロンプトのインストールで、
/INSTALLSQLDATADIR
として\\<FileServer>\<Share1>\
を指定します。SMB ファイル共有オプションを使用してスタンドアロン サーバーに SQL Server をインストールする構文の例を次に示します。
Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS
SQL Server 2022 (16.x) 以降のバージョンについては、 aka.ms/useterms の Microsoft SQL Server ソフトウェア ライセンス条項を参照してください。
データベース エンジンと Analysis Services を含む単一ノードの SQL Server フェールオーバー クラスター インスタンスを既定のインスタンスとしてインストールするには、次の手順に従ってください。
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="<password>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS
SQL Server のさまざまなコマンド ライン パラメーター オプションの使用方法の詳細については、 コマンド プロンプトから Windows に SQL Server をインストールして構成するを参照してください。
注
パスワードは、SQL Server の既定の パスワード ポリシーに従う必要があります。 既定では、パスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。 パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。
オペレーティング システムに関する考慮事項 (SMB プロトコル vs. SQL サーバー)
Windows オペレーティング システムのバージョンによって SMB プロトコルのバージョンも異なりますが、SQL Server は、どのバージョンの SMB プロトコルにも対応します。 SMB プロトコルの各バージョンによって、 SQL Serverに対するメリットも異なります。
オペレーティング システム | SMB2 プロトコルのバージョン | SQL Serverのメリット |
---|---|---|
Windows Server 2012 以降のバージョン (Server Core を含む) | 3.0 | ファイル共有の透過的なフェールオーバーのサポートにより、ファイル サーバー クラスター構成でデータベース管理者またはファイル サーバー管理者が介入する必要なく、ダウンタイムをゼロにできます。 複数のネットワーク インターフェイスを同時に使用する IO のサポートと、ネットワーク インターフェイスの障害に対する許容度。 RDMA 機能を備えたネットワーク インターフェイスをサポートします。 これらの機能とサーバー メッセージ ブロックの詳細については、「 サーバー メッセージ ブロックの概要」を参照してください。 継続的可用性機能を備えたスケールアウト ファイル サーバー (SoFS) をサポートします。 |
Windows Server 2012 R2 以降のバージョン (Server Core を含む) | 3.2 | ファイル共有の透過的なフェールオーバーのサポートにより、ファイル サーバー クラスター構成でデータベース管理者またはファイル サーバー管理者が介入する必要なく、ダウンタイムをゼロにできます。 複数のネットワーク インターフェイスを同時に使用する IO と、SMB マルチチャネルを使用したネットワーク インターフェイスの障害に対する許容範囲のサポート。 RDMA 機能を備えたネットワーク インターフェイスをサポートします (SMB ダイレクトを使用した場合)。 これらの機能とサーバー メッセージ ブロックの詳細については、「 サーバー メッセージ ブロックの概要」を参照してください。 継続的可用性機能を備えたスケールアウト ファイル サーバー (SoFS) をサポートします。 SQL Server トランザクション スタイルのワークロードに共通の小さなランダム読み取り/書き込み I/O 用に最適化されています。 最大転送単位 (MTU) が既定で有効になっています。これにより、 SQL Server データ ウェアハウス、データベースのバックアップと復元など、大規模なシーケンシャル転送のパフォーマンスが大幅に向上します。 |
セキュリティに関する考慮事項
SQL Server サービス アカウントと SQL Server エージェント サービス アカウントには、SMB 共有フォルダーに対する共有アクセス許可と NTFS アクセス許可
FULL CONTROL
必要があります。 SMB ファイル サーバーを使用する場合、ドメイン アカウントまたはシステム アカウントを SQL Server サービス アカウントにすることができます。 共有と NTFS のアクセス許可の詳細については、「 ファイル サーバーでの共有と NTFS のアクセス許可」を参照してください。注
SMB 共有フォルダーに対する
FULL CONTROL
共有アクセス許可と NTFS アクセス許可は、SQL Server サービス アカウント、SQL Server エージェント サービス アカウント、および管理者サーバー ロールを持つ Windows ユーザーに制限する必要があります。SQL Server サービス アカウントとしてドメイン アカウントを使用します。 システム アカウントがサービス アカウントとして使用されている場合は、
<___domain-name>\<computer-name>*$*
形式でマシン アカウントのアクセス許可を付与します。注
SMB ファイル共有がストレージ オプションとして指定されている場合は、SQL Server のセットアップ時に、サービス アカウントとしてドメイン アカウントを指定する必要があります。 SMB ファイル共有では、
System
アカウントは、SQL Server のインストール後にのみサービス アカウントとして指定できます。仮想アカウントをリモートの場所に対して認証することはできません。 すべての仮想アカウントは、マシン アカウントのアクセス許可を使用します。
<___domain-name>\<computer-name>*$*
形式でマシン アカウントをプロビジョニングします。SQL Server のインストールに使用するアカウントには、クラスターのセットアップ中に、データ ディレクトリとして使用される SMB ファイル共有フォルダー、またはその他のデータ フォルダー (ユーザー データベース ディレクトリ、ユーザー データベース ログ ディレクトリ、
tempdb
ディレクトリ、tempdb ログ ディレクトリ、バックアップ ディレクトリ) に対する FULL CONTROL アクセス許可が必要です。SQL Server のインストールに使用するアカウントには、SMB ファイル サーバーに対する
SeSecurityPrivilege
特権が付与されている必要があります。 この権限を付与するには、ファイル サーバーでローカル セキュリティ ポリシー コンソールを使用して 監査とセキュリティ ログの管理 ポリシーに SQL Server セットアップ アカウントを追加します。 この設定は、[ローカル ポリシー] の [ユーザー権利の割り当て] セクションで使用できます。
既知の問題と制限事項
ネットワーク接続ストレージ上にある SQL Server データベースをデタッチすると、SQL Server データベースの再アタッチ中にデータベースのアクセス許可の問題が発生する可能性があります。 詳細については、エラー 5120 を参照してください。
SMB ファイル共有が SQL Server のクラスター化されたインスタンスのストレージ オプションとして使用されている場合、SQL Server リソース DLL にファイル共有に対する読み取り/書き込みアクセス許可がないため、既定では SQL Server フェールオーバー クラスター診断ログをファイル共有に書き込むことができません。 この問題を解決するには、次のいずれかの方法を試してください。
ファイル共有に対する読み取り/書き込み権限をクラスター内のすべてのコンピューター オブジェクトに付与する。
診断ログの場所をローカル ファイル パスに設定する。 次の例を参照してください。
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG PATH = 'C:\logs';
SMB ファイル共有で SQL Server データ ファイルをホストする場合、ファイルに対するすべての I/O は、サーバーまたは仮想マシン上のネットワーク インターフェイスを経由します。 ワークロードに必要な I/O をサポートするのに十分なネットワーク帯域幅があることを確認します。
ネットワーク接続の問題またはその他の障害により、SQL Server データ ファイルをホストしているファイル共有が使用できないと、SQL Server で I/O の遅延やエラーが発生する可能性があります。 ミッション クリティカルなワークロードの場合は、ネットワークとファイル共有に冗長性が組み込まれており、ファイル共有で SMB 3.0 透過的フェールオーバー ( 継続的可用性とも呼ばれます) がサポートされていることを確認します。