SQL Server DB が「復旧保留」または「疑わしい」状態になった場合の安全な対応

Recovery Pending/Suspect は復旧処理を完了できない状態です。ファイルとログを保護し、I/O、容量、権限、エラー番号を調査します。

変更前にリスクと切戻しを確定試験環境または代表一台で先に確認し、構成、ログ、復元可能なバックアップを保存します。本番切替、一括ポリシー、DB 修復、ストレージ再構築では保守時間と切戻し条件を設定します。

1. 結論と対象範囲

異常状態は原因ではなく結果です。ストレージ切断、媒体障害、権限変更、ログ消失、容量不足、異常終了、ファイルシステム障害で発生します。アタッチ、デタッチ、修復を繰り返さず、現物を保護して有効バックアップを確認します。

SQL Server、ERP、DB 復旧、版移行に関係します。高リスク操作前に検証済みバックアップを保護します。

2. 優先して確認するリスク兆候

  • DB が RECOVERY_PENDING、SUSPECT、EMERGENCY となり、全アプリ接続が失敗する。
  • ERRORLOG に 823、824、825、9001、5120、5173 などの I/O/ファイルエラーがある。

3. 変更前の確認項目

  1. MDF、NDF、LDF、ERRORLOG を複製保護し、時刻、ディスク、サービス状態を記録します。
  2. Windows System/Application、コントローラー、RAID、ファイルシステム、空き容量、権限を確認します。
  3. 全 DB ファイル経路と、ログ削除・移動・切詰めの有無を確認します。
  4. 完全、差分、ログバックアップを棚卸しし、復元可能時点を確定します。
読取中心の確認・検証例
SELECT name,state_desc,user_access_desc FROM sys.databases;
EXEC xp_readerrorlog 0,1,N"Error";
DBCC CHECKDB (N"DatabaseName") WITH NO_INFOMSGS, ALL_ERRORMSGS;

corp.example、192.0.2.0/24、203.0.113.0/24 は文書用の例です。実環境の値を確認したうえで置き換えてください。

4. 推奨実施手順

  1. 本番ファイルを触らず、隔離環境へバックアップ復元して検証する方法を優先します。
  2. ストレージと権限の原因を直してから通常回復を試します。
  3. 有効バックアップがなく、業務が損失を承認した場合だけ EMERGENCY と REPAIR_ALLOW_DATA_LOSS を検討します。
  4. 強制修復後は検証済みデータを新 DB へ移し、修復済み DB を長期本番にしません。
リモート調査と現地作業の判断ログ、構成、少数対象は通常リモートで評価できます。物理サーバー、ストレージ、電源、全体切替、復元訓練は管理された現地作業枠を使用します。浙江・上海・江蘇は案件により訪問対応し、その他地域はリモート支援します。

5. 検証、切戻し、よくある誤り

  • DBCC CHECKDB に整合性エラーがなく、複数回再起動して回復します。
  • アプリ、ジョブ、バックアップ、重要データ照合が通ります。
  • ディスク、RAID、ファイルシステム、イベントに基礎障害がありません。

よくある誤り

  • LDF を削除して再アタッチする。
  • 唯一の原本でデータ損失修復を実行する。
  • ONLINE に戻すだけでストレージ原因を調べない。

よくある質問

Recovery Pending と Suspect の違いは何ですか。

前者は資源不足などで回復開始不能、後者は回復失敗を示すことが多く、具体的エラーで判断します。

REPAIR_ALLOW_DATA_LOSS をすぐ使えますか。

使いません。ページやオブジェクトを削除し得るため、有効バックアップがなく損失承認済みの最終手段です。

前の記事SQL Server が起動数秒後に停止する場合の ERRORLOG、サービスアカウント、master、tempdb 調査次の記事Hyper-V チェックポイントがバックアップの代わりにならない理由と復元受入試験

実環境に合わせた判断が必要ですか。

バージョン、構成図、完全なエラー、イベント時刻、影響範囲、直近変更、実施済み操作をご提供ください。リスク、対応範囲、切戻しを確認してから実施範囲を整理します。