※KB3148812 を削除しても復旧しない場合の手順。
※Microsoft SQL Server Management Studio がインストールされている前提。
※WIDを使っている場合の手順。SQL Server を使用してる場合は、sqlcmd起動パラメータが変わる。
1:SQLサービスを停止し、Databaseファイルをバックアップする。
2:SQLサービスを開始する。
3:Microsoft SQL Server Management Studio で、SUSDB の状況を確認する。
もし、復旧待ち であれば、5Bを実施する必要がある。
4:sqlcmd -S で Windows Internal Database (WID) に接続
Administrator>sqlcmd -S \\.\pipe\MICROSOFT##WID\tsql\query
5A:整合性のテストを実施する
DBCC CHECKDB([SUSDB]) GO
5B:【復旧待ちの場合】緊急モードへ変更し、整合性のテストを実施する
USE master GO ALTER DATABASE [SUSDB] SET EMERGENCY GO DBCC CHECKDB([SUSDB]) GO
6:結果の確認
7:エラーがあった場合や緊急モードにしている場合、シングルモードに落とす
※何かがSUSDBを掴んでいることがあるため、そのセッションをKILLする必要があるかもしれない。
SELECT request_session_id FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID('SUSDB') GO KILL [セッションID] GO ALTER DATABASE SUSDB SET SINGLE_USER
8A:リペアの実施
※緊急モードに落としている場合は、これはエラーになる。
ALTER DATABASE [SUSDB] SET ONLINE GO DBCC CHECKDB(‘SUSDB’,’REPAIR_REBUILD’) GO
8B:【緊急モードの場合はこちら】リペアの実施
DBCC CHECKDB(‘SUSDB’,’REPAIR_ALLOW_DATA_LOSS’) GO
9:エラーがないことを確認
DBCC CHECKDB(‘SUSDB’) GO
10:制約に関する整合性をチェック
USE [SUSDB] GO DBCC CHECKCONSTRAINTS GO
11:エラーがなければ、マルチユーザモードに戻す
ALTER DATABASE [SUSDB] SET MULTI_USER
ピンバック: 20160422 はれ | まこぴかっと