SqlServerデータベース修復(dbcc checkdb)


前に1つの取引先の现场の问题に出会って、支持する时データベースが间违っていることを発见して、対応する记录の削除を招いて、修正の操作は成功することができなくて、解决方法を探して、テストは成功して、方法は以下の通りです:
エラーメッセージ:
**/*/****14:17:25、spid 59、不明、Attempt tofetch logical page(3:509)in database 11 failed.It belongs to allocation unit72057594611695616 not to 72057594041991168.
**/*/****14:17:25、spid 59、不明、エラー:605、重大度:21、ステータス:3.
データベース破損エラー.
重大度レベル21は、データ破損の可能性があることを示します.原因には、破損するページチェーン、破損したIAM、またはオブジェクトのsysが含まれる.objectsディレクトリビューに無効なエントリがあります.これらのエラーは、通常、ハードウェアまたはディスクデバイスドライバの障害によって発生します.
-- :
-- :
use master
declare @databasename varchar(255)  
set @databasename='****_db'
alter database ****_db set Single_user  -- 
--exec sp_dboption @databasename, N'single', N'true'  --   sql08
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)  
dbcc checkdb(@databasename,REPAIR_REBUILD)  
alter database ****_db set multi_user   -- 
-- exec sp_dboption @databasename, N'single', N'false'  --  sql08,12 sp_dboption 。

実行時間が長い場合は、ビジネスロジックまたはビジネスロジックのない時間を推奨します.
SQLSERVERデータベースをシングルユーザとマルチユーザモードに切り替える
データベースが占有されている場合、いくつかの操作をしようとして、操作できないことがあります.データベースをシングルユーザモードに切り替えて操作できます.操作が完了したら、マルチユーザモードに戻ります.
コマンドは次のとおりです.
alter databaseデータベース名set Single_user--単一ユーザalter databaseデータベース名set multi_user--マルチユーザ
または
sp_dboptionデータベース名、single user、true--単一ユーザー
sp_dboptionデータベース名、single user、false--マルチユーザー
使用する場合
ALTER DATABAS
あるいは
SP_DBOPTION
マルチユーザまたはシングルユーザモードに変更することはできません
解決策は
アクティビティとモニタのプロセスで、宛先ライブラリに関連する
KILL
落ちて、リフレッシュします.
使用
ALTER DATABASE DB_TYZ
もっと直しておけばよかったのに