SUSDB のリペア作業メモ

※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
カテゴリー: めも パーマリンク

1 Response to SUSDB のリペア作業メモ

  1. ピンバック: 20160422 はれ | まこぴかっと

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です