欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQLSERVER中修复状态为Suspect的数据库

程序员文章站 2024-02-12 09:19:28
...

前几天的Server因断电损坏了DB,DB的Status被标记为 Suspect。 这种情况少见,此时不能Detachp这个DB了,只能Backup。 后面用这些T-Script重建log文件,还是少量数据丟失。 检查DB的状态: 1: SELECT DATABASEPROPERTYEX ( 'DemoSuspect' , 'STATUS' ) AS 'St

前几天的Server因断电损坏了DB,DB的Status被标记为Suspect。这种情况少见,此时不能Detachp这个DB了,只能Backup。

后面用这些T-Script重建log文件,还是少量数据丟失。

检查DB的状态:

   1:  SELECT DATABASEPROPERTYEX ('DemoSuspect', 'STATUS') AS 'Status';
   2:  GO
   3:   
   4:  Status
   5:  --------
   6:  SUSPECT
   
   最后修复:

   1:  ALTER DATABASE DemoSuspect SET EMERGENCY;
   2:  Go
   3:  ALTER DATABASE DemoSuspect SET SINGLE_USER;
   4:  Go
   5:  DBCC CHECKDB (DemoSuspect, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;
   6:  GO

DemoSuspect是你的DB名称。

还可以参加下面两篇文章:

TechEd Demo: Creating, detaching, re-attaching, and fixing a suspect database

CHECKDB From Every Angle: EMERGENCY mode repair - the very, very last resort

希望这篇Post对您有帮助。

Author: Petter Liu http://wintersun.cnblogs.com