ファイルの状態

SQL Server では、データベース ファイルの状態はデータベースの状態とは別に管理されます。ファイルは常に、ONLINE または OFFLINE などの特定の状態にあります。ファイルの現在の状態を表示するには、sys.master_files カタログ ビューまたは sys.database_files カタログ ビューを使用します。データベースがオフラインになっている場合、sys.master_files カタログ ビューからファイルの状態を表示できます。

ファイル グループ内のファイルの状態により、ファイル グループ全体の可用性が決まります。ファイル グループを使用可能にするには、ファイル グループ内のすべてのファイルがオンラインである必要があります。ファイル グループの現在の状態を表示するには、sys.filegroups カタログ ビューを使用します。ファイル グループがオフラインのときに、Transact-SQL ステートメントを使用してファイル グループにアクセスしようとすると、エラーが発生して失敗します。クエリ オプティマイザで SELECT ステートメントのクエリ プランを作成すると、オフライン ファイル グループに存在する非クラスタ化インデックスおよびインデックス付きビューが無視され、これらのステートメントが成功します。ただし、オフライン ファイル グループに対象テーブルのヒープまたはクラスタ化インデックスが含まれている場合、SELECT ステートメントが失敗します。さらに、オフライン ファイル グループ内のインデックス付きのテーブルを変更する INSERT、UPDATE、または DELETE の各ステートメントは失敗します。

ファイルの状態の定義

次の表では、ファイルの状態を定義しています。

状態

定義

ONLINE

すべての操作でファイルを使用できます。データベース自体がオンラインである場合、プライマリ ファイル グループ内のファイルは常にオンラインです。プライマリ ファイル グループ内のファイルがオンラインでない場合、データベースはオンラインにならないので、セカンダリ ファイルの状態は未定義となります。

OFFLINE

ファイルにアクセスできません。また、ファイルがディスク上に存在しない可能性があります。ファイルは、ユーザーの明示的な操作によってオフラインになり、ユーザーが追加操作を行うまではオフラインのままになります。

注記注意
ファイルをオフラインにする必要があるのはファイルが破損している場合だけですが、ファイルは復元できます。オフラインに設定されたファイルをオンラインに設定する唯一の方法は、バックアップからファイルを復元することです。1 つのファイルの復元の詳細については、「RESTORE (Transact-SQL)」を参照してください。

RESTORING

ファイルを復元中です。復元コマンドはページの復元だけでなくファイル全体に影響するため、ファイルが復元状態になります。復元が完了してファイルが復旧されるまではこの状態のままになります。

RECOVERY PENDING

ファイルの復旧が延期されました。ファイルが復元および復旧されず、復元処理が断片的な状態になると、ファイルは自動的にこの状態になります。エラーを解決して復旧処理を完了できるようにするには、ユーザーによる追加操作が必要です。詳細については、「段階的な部分復元の実行」を参照してください。

SUSPECT

オンラインの復元処理中にファイルの復旧に失敗しました。ファイルがプライマリ ファイル グループにある場合、データベースも問題ありとしてマークされます。それ以外の場合、ファイルのみが問題ありの状態になり、データベースはオンラインのままになります。

次の方法のいずれかによってファイルが使用可能になるまで、ファイルは問題ありの状態のままになります。

  • 復元および復旧

  • REPAIR_ALLOW_DATA_LOSS を指定した DBCC CHECKDB

DEFUNCT

ファイルがオンラインでないときに削除されました。オフラインのファイル グループが削除されると、ファイル グループ内のすべてのファイルが機能しなくなります。