SQL Server をストレージ オプションとして SMB ファイル共有にインストールする
SQL Server 2012 以降では、システム データベース (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) ステートメント
次に示す Transact-SQL DDL ステートメントおよびデータベース エンジン ストアド プロシージャで SMB ファイル共有がサポートされます。
インストール オプション
セットアップの [データベース エンジンの構成] ページの [データ ディレクトリ] タブで、[データ ルート ディレクトリ] パラメーターを "\\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
データベース エンジンおよび 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="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 2012 におけるさまざまなコマンド ライン パラメーター オプションの使用方法については、「コマンド プロンプトからの SQL Server 2012 のインストール」を参照してください。
オペレーティング システムに関する注意事項 (SMB プロトコルとSQL Server)
Windows オペレーティング システムのバージョンによって SMB プロトコルのバージョンも異なりますが、SQL Server は、どのバージョンの SMB プロトコルにも対応します。 SMB プロトコルの各バージョンによって、SQL Server 2012 に対するメリットも異なっています。
オペレーティング システム |
SMB2 プロトコルのバージョン |
SQL Server に対するメリット |
---|---|---|
Windows Server 2008 |
2.0 |
|
Windows Server 2008 R2 |
2.1 |
|
Windows Server 2012 |
3.0 |
|
Windows Server 2012 R2 |
3.02 |
|
セキュリティに関する注意点
SQL Server サービス アカウントと SQL Server エージェント サービス アカウントには、SMB 共有フォルダーに対するフル コントロールの共有権限と NTFS 権限が必要です。 SMB ファイル サーバーを使用する場合、ドメイン アカウントまたはシステム アカウントを SQL Server サービス アカウントにすることができます。 共有および NTFS 権限の詳細については、「ファイル サーバーの共有アクセス許可と NTFS アクセス許可 (https://go.microsoft.com/fwlink/?LinkId=245535) を参照してください。
注 SMB 共有フォルダーに対するフル コントロールの共有権限と NTFS 権限は、SQL Server サービス アカウント、SQL Server エージェント サービス アカウント、および管理サーバー ロールを持つ Windows ユーザーに制限する必要があります。
ドメイン アカウントを SQL Server サービス アカウントとして使用することをお勧めします。 システム アカウントをサービス アカウントとして使用した場合、コンピューター アカウントの権限を <domain_name>\<computer_name>$ という形式で指定できます。
注 SQL Server セットアップで、ストレージ オプションとして SMB ファイル共有を指定した場合は、ドメイン アカウントをサービス アカウントとして指定する必要があります。 SMB ファイル共有を使用する場合、システム アカウントは SQL Server のインストール後にのみサービス アカウントとして指定することができます。
仮想アカウントでは、リモートの場所へアクセスすることはできません。 どの仮想アカウントも、コンピューター アカウントの権限を使用します。 <domain_name>\<computer_name>$ の形式でコンピューター アカウントを準備してください。
SQL Server のインストールに使用するアカウントには、クラスター セットアップの際にデータ ディレクトリとして使用される、SMB ファイル共有フォルダーおよび他のすべてのデータ フォルダー (ユーザー データベース ディレクトリ、ユーザー データベース ログ ディレクトリ、TempDB ディレクトリ、TempDB ログ ディレクトリ、バックアップ ディレクトリ) に対して、フル コントロール権限が必要です。
SQL Server のインストールに使用するアカウントには、SMB ファイル サーバーに対する SeSecurityPrivilege 特権を付与する必要があります。 この特権を付与するには、ファイル サーバーで [ローカル セキュリティ ポリシー] コンソールを使用して、監査とセキュリティ ログの管理ポリシーに SQL Server セットアップ アカウントを追加します。 この設定は、[ローカル セキュリティ ポリシー] コンソールの [ローカル ポリシー] にある [ユーザー権利の割り当て] セクションで行うことができます。
既知の問題
ネットワークにアタッチされたストレージ上に存在する SQL Server 2012 データベースをデタッチした後で、その SQL Server データベースを再アタッチしようとすると、データベース権限の問題が発生する場合があります。 この問題については、サポート技術情報の資料 (https://go.microsoft.com/fwlink/?LinkId=237321) を参照してください。 この問題を回避するには、このサポート技術情報の「詳細」を参照してください。
SQL Server のクラスター化されたインスタンスのストレージ オプションとして SMB ファイル共有が使用されている場合、SQL Server Resource DLL にはこのファイル共有に対する読み取り/書き込み権限がないため、既定では、SQL Server フェールオーバー クラスター診断ログをファイル共有に書き込むことができません。 この問題を解決するには、次のいずれかの方法を試してください。
ファイル共有に対する読み取り/書き込み権限をクラスター内のすべてのコンピューター オブジェクトに付与する。
診断ログの場所をローカル ファイル パスに設定する。 次の例を参照してください。
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG PATH = 'C:\logs';