この記事では、SQL Server でのネットワーク データベース ファイルのサポートと、ネットワーク サーバーまたは NAS ストレージ サーバーにデータベースを格納するように SQL Server を構成する方法について説明します。
元の製品バージョン: SQL Server
元の KB 番号: 304261
まとめ
通常、Microsoft では、この構成によって SQL Server のパフォーマンスと信頼性が最適化されるため、Microsoft SQL Server データベース ファイルのストレージには記憶域ネットワーク (SAN) またはローカルに接続されたディスクを使用することをお勧めします。 既定では、ネットワーク サーバーまたはネットワーク接続ストレージ (NAS) サーバーに格納されているネットワーク データベース ファイルの使用は、SQL Server では有効になっていません。
ただし、ネットワーク サーバーまたは NAS サーバーにデータベースを格納するように SQL Server を構成できます。 この目的で使用されるサーバーは、データ書き込みの順序付けと書き込みスルーの保証に関する SQL Server の要件を満たしている必要があります。 詳細については、「 詳細情報 」セクションを参照してください。
次の条件では、ネットワーク サーバーまたは NAS サーバーに格納されているネットワーク データベース ファイルの使用について説明します。
この使用は、Microsoft SQL Server 2008 R2 以降のバージョンでは既定で有効になっています。
この使用には、Microsoft SQL Server 2008 以前のバージョンで動作するには、 -T1807 スタートアップ トレース フラグが必要です。 SQL Server 2012 以降では、トレース フラグは不要になりました。 スタートアップ トレース フラグを有効にする方法の詳細については、「データベース エンジン サービスのスタートアップ オプションを参照してください。
Windows Hardware Quality Lab (WHQL) 認定デバイス
Windows Hardware Quality Lab (WHQL) 認定の Microsoft Windows サーバーとネットワーク サーバーまたは NAS ストレージ サーバーは、SQL Server ストレージ デバイスをサポートするために必要なデータ書き込み順序と書き込みスルーの保証を自動的に満たします。 Microsoft では、これらの構成でアプリケーションとストレージに関連する問題の両方をサポートしています。
Note
SQL Server でサポートされるためには、NAS ストレージ ソリューションは、ダウンロード ドキュメントに記載されているすべての要件も満たしている必要があります。 SQL Server IO 信頼性プログラムの要件。
その他のデバイス
この記事で説明するトランザクション データベースの使用に対する I/O 保証をサポートする SQL Server で WHQL 非修飾ストレージ デバイスを使用する場合、Microsoft は SQL Server および SQL Server ベースのアプリケーションを完全にサポートします。 ただし、デバイスまたはそのストレージ サブシステムに関する問題または原因は、デバイスの製造元と呼ばれます。 この記事で説明するトランザクション データベースの使用に対する I/O 保証をサポートしていない非 WHQL 修飾ストレージ デバイスを使用する場合、Microsoft は SQL Server または SQL Server ベースのアプリケーションをサポートできません。 WHQL で修飾されていないストレージ デバイスが、この記事で説明されているトランザクション データベースの使用に対する I/O 保証をサポートしているか、データベースを使用するように設計されているかを判断するには、デバイス ベンダーに確認してください。 また、トランザクション データベース用にデバイスが正しく展開および構成されていることを確認するには、デバイス ベンダーにお問い合わせください。
詳細
既定では、SQL Server 2008 以前のバージョンでは、ネットワーク ファイル共有に SQL Server データベースを作成することはできません。 マップまたは UNC ネットワークの場所にデータベース ファイルを作成しようとすると、次のいずれかのエラー メッセージが生成されます。
エラー メッセージ 1
5105 "デバイスのアクティブ化エラー"
エラー メッセージ 2
5110 "ファイル 'file_name' は、データベース ファイルでサポートされていないネットワーク デバイス上にあります。
この動作は予期されています。 トレース フラグ 1807 では、チェックがバイパスされ、ネットワーク ベースのデータベース ファイルを使用して SQL Server を構成できます。 SQL Server およびその他のほとんどのエンタープライズ データベース システムでは、トランザクション ログと関連する復旧ロジックを使用して、システム障害やアンマネージド シャットダウンが発生した場合にトランザクション データベースの一貫性を維持します。 これらの回復プロトコルは、ディスク メディアに直接書き込む機能に依存するため、オペレーティング システムの入出力 (I/O) 書き込み要求がデータベース マネージャーに戻ったときに、復旧システムは書き込みが完了しているか、書き込みの完了を保証できます。 このプロトコルを受け入れるソフトウェアまたはハードウェア コンポーネントによって障害が発生すると、システム障害が発生した場合に、データの部分的または全体的な損失または破損が発生する可能性があります。 SQL Server のログ記録と回復プロトコルのこれらの側面の詳細については、「 SQL Server でのデータの信頼性を拡張するログ記録アルゴリズムとデータ ストレージ アルゴリズムの説明を参照してください。
Microsoft は、これらの書き込みおよび書き込み順序の要件を満たしていない NAS またはネットワークストレージサーバー上の SQL Server ネットワーク データベース ファイルをサポートしていません。
ネットワーク エラーによってデータベースの整合性が損なわれるリスクと、データベースを格納するためのネットワーク ファイル共有の使用によるパフォーマンスへの影響の可能性があるため、Microsoft では、データベース ファイルをローカル ディスク サブシステムまたは記憶域ネットワーク (SAN) に格納することをお勧めします。
ネットワーク接続ストレージ (NAS) システムは、クライアントがネットワーク プロトコル (TCP/IP など) を使用してネットワーク リダイレクターを介して接続するファイル ベースのストレージ システムです。 既定では、ディスク リソースへのアクセスで共有をマップする必要がある場合、またはネットワーク上の UNC パス (\Servername\Sharename など) を介してディスク リソースがリモート サーバーとして表示される場合、ディスク ストレージ システムは SQL Server データベースの場所としてサポートされません。
パフォーマンスの問題
SQL Server は、他のエンタープライズ データベース システムと同様に、I/O サブシステムに大きな負荷をかけることができます。 ほとんどの大規模なデータベース アプリケーションでは、物理 I/O 構成とチューニングがシステム全体のパフォーマンスに大きな役割を果たします。 考慮すべき 3 つの主要な I/O パフォーマンス要因があります。
- I/O 帯域幅: 集計帯域幅。通常、データベース デバイスに維持できる 1 秒あたりのメガバイト単位で測定されます。
- I/O 待機時間: データベース システムによる I/O 要求から I/O 要求が完了した時点までの待機時間 (通常はミリ秒単位)。
- CPU コスト: データベース システムが 1 つの I/O を完了するためのホスト CPU コスト (通常は CPU マイクロ秒単位で測定)。
これらの I/O 要因のいずれかがボトルネックになる可能性があるため、データベース アプリケーションの I/O システムを設計するときは、これらすべての要因を考慮する必要があります。
NAS ソリューションは、最も単純な形式で、標準ネットワーク リダイレクター ソフトウェア スタック、標準ネットワーク インターフェイス カード (NIC)、標準イーサネット コンポーネントを使用します。 この構成の欠点は、すべてのファイル I/O がネットワーク スタック経由で処理され、ネットワーク自体の帯域幅制限の対象となることです。 これにより、特に SQL Server などの高レベルのファイル I/O を必要とするプログラムで、パフォーマンスとデータの信頼性の問題が発生する可能性があります。 Microsoft によってテストされた一部の NAS 構成では、I/O スループットは、同じサーバー上の直接接続ストレージ ソリューションの 3 分の 1 (1/3) でした。 この同じ構成では、NAS デバイスを介して I/O を完了するための CPU コストは、ローカル I/O の 2 倍でした。 NAS デバイスとネットワーク インフラストラクチャが進化するにつれて、これらの比率は、直接接続されたストレージまたは SAN に対しても改善される可能性があります。 さらに、アプリケーション データが主にデータベース バッファー プールにキャッシュされていて、説明されている I/O ボトルネックが発生しない場合は、NAS ベースのシステムのパフォーマンスがアプリケーションに適している可能性があります。
バックアップと復元の考慮事項
SQL Server には、バックアップ用の仮想デバイス インターフェイス (VDI) が用意されています。 VDI は、ホット バックアップを実行したり、SQL Server データベースを復元したりするための、高パフォーマンスでスケーラブルで信頼性の高い手段をバックアップ ソフトウェア ベンダーに提供します。
バックアップソフトウェアは、NASに固有の特別なサポートなしで、VDIを介してNASデバイスに保存されたデータベースファイルで動作します。 ただし、これにより、バックアップと復元中に多くの追加のネットワーク トラフィックが発生します。 VDI を介したバックアップ中に、SQL Server はファイルをリモートで読み取り、SQL Server コンピューターで実行されているサード パーティのバックアップ ソフトウェアにデータを渡します。 復元操作は似ています。
追加のネットワーク オーバーヘッドを回避するには、バックアップ ベンダーと NAS ベンダーが NAS 固有のサポートを提供する必要があります。 SQL Server VDI を使用すると、バックアップ ソフトウェアは、NAS デバイスでサポートされているハードウェア (スプリット ミラー) またはソフトウェア (書き込み時のコピー) テクノロジを利用して、データベース ファイルの高速コピーを NAS にローカルに作成できます。 これらのテクノロジは、バックアップのためにネットワーク経由でファイルをコピーするオーバーヘッドを回避するだけでなく、復元時間を桁違いに短縮することもできます。
NAS に保存されているバックアップは、NAS に格納されているデータベース ファイルに影響を与えるのと同じ障害に対して脆弱です。 これらのバックアップを別のメディアにコピーして保護することを検討する必要があります。
注意事項
SQL Server VDI をサポートしていない NAS バックアップ テクノロジを使用すると、バックアップでデータベースの破損が発生する可能性があります。 このような破損には、ページが破損したり、ログ ファイルとデータ ファイルが別々のデバイスに保存されている場合の不整合が含まれます。 SQL Server では、データベースを復元して破損したデータにアクセスするまで、破損したページや不整合が検出されない場合があります。 Microsoft は、SQL Server と連携していない NAS バックアップ テクノロジの使用をサポートしていません。
SQL Server VDI のバックアップ サポートと NAS ベンダーのサポートは異なります。 VDI サポートの詳細については、NAS およびバックアップ ソフトウェア サプライヤーにお問い合わせください。
Microsoft では、SQL Server データベース用の NAS ソリューションのデプロイを検討しているお客様に、NAS ベンダーに問い合わせ、エンドツーエンドのソリューション設計がデータベースで使用されることを確認するようお勧めします。 多くの NAS ベンダーには、この使用に関するベスト プラクティス ガイドと認定された構成があります。 また、以前に説明した I/O 要素がアプリケーションのボトルネックを引き起こさないよう、お客様が I/O パフォーマンスのベンチマークを行うことをお勧めします。
次の一覧では、SQL フェールオーバー クラスターでのネットワーク ベースのファイルのサポートについて説明します。
SQL Server 2008 R2 以前のバージョン: サポートされていません
SQL Server 2012 以降のバージョン: サポートされています
詳細については、次の SQL Server オンライン ブックのトピックを参照してください。
追加メモ
NAS 製品でデータベース ソフトウェアを誤って使用したり、不適切に構成された NAS 製品でデータベースを使用したりすると、データベースの損失の合計を含むデータが失われる可能性があります。 NAS デバイスまたはネットワーク ソフトウェアが、書き込みの順序付けや書き込みスルーなどのデータの保証を完全に受け入れない場合、ハードウェア、ソフトウェア、または電源障害によって、データの整合性が深刻に損なわれる可能性があります。