SQL Serverでのネットワーク データベース ファイルのサポートの説明

この記事では、SQL Serverのネットワーク データベース ファイルのサポートと、ネットワークサーバーまたは NAS ストレージ サーバーにデータベースを格納するようにSQL Serverを構成する方法について説明します。

元の製品バージョン: SQL Server
元の KB 番号: 304261

概要

一般に、この構成ではパフォーマンスと信頼性が最適化されるため、Microsoft SQL Server データベース ファイルのストレージには記憶域ネットワーク (SAN) またはローカルに接続されたディスク SQL Serverを使用することをお勧めします。 既定では、ネットワーク サーバーまたはネットワーク接続ストレージ (NAS) サーバーに格納されているネットワーク データベース ファイルの使用は、SQL Serverでは有効になっていません。

ただし、ネットワーク接続されたサーバーまたは NAS サーバーにデータベースを格納するようにSQL Serverを構成できます。 この目的で使用されるサーバーは、データ書き込み順序付けと書き込みスルーの保証のSQL Server要件を満たす必要があります。 詳細については、「 詳細情報 」セクションを参照してください。

次の条件では、ネットワーク サーバーまたは NAS サーバーに格納されているネットワーク データベース ファイルの使用について説明します。

  • この使用は、Microsoft SQL Server 2008 R2 以降のバージョンでは既定で有効になっています。

  • この使用には、-T1807 スタートアップ トレース フラグが Microsoft SQL Server 2008 以前のバージョンで機能する必要があります。 SQL Server 2012 以降では、トレース フラグは不要になりました。 スタートアップ トレース フラグを有効にする方法の詳細については、「 データベース エンジン サービスのスタートアップ オプション」を参照してください。

Windows ハードウェア品質ラボ (WHQL) 認定デバイス

Windows ハードウェア品質ラボ (WHQL) 認定の Microsoft Windows サーバーとネットワーク サーバーまたは NAS ストレージ サーバーは、SQL Server ストレージ デバイスをサポートするために必要なデータ書き込み順序と書き込みスルーの保証を自動的に満たします。 Microsoft では、これらの構成でアプリケーションとストレージに関連する問題の両方をサポートしています。

注:

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 フェールオーバー クラスターでのネットワーク ベースのファイルのサポートについて説明します。

備考

NAS 製品でデータベース ソフトウェアを誤って使用したり、不適切に構成された NAS 製品でデータベースを使用したりすると、データベースの損失の合計を含むデータが失われる可能性があります。 NAS デバイスまたはネットワーク ソフトウェアが、書き込み順序や書き込みスルーなどのデータの保証を完全に受け入れない場合、ハードウェア、ソフトウェア、または電源障害によって、データの整合性が深刻に損なわれる可能性があります。

関連情報