[分享] 数据库置疑的修复故事

[复制链接]

该用户从未签到

108

主题

209

回帖

6045

积分

Intohard Team

Rank: 7Rank: 7Rank: 7

积分
6045
发表于 2007-7-5 10:29:57 | 显示全部楼层 |阅读模式
The information in this article applies to:
  - Microsoft SQL Server 7.0,2000
  [SQL]数据库置疑的
  故事
  Revision History:
  对本文档所有修改都应按修改时间顺序记录在此。
  
  Version
  Date
  Creator
  Description
  1.0.0.1
  2004-2-19
  郑昀
  草稿
  
  Implementation Scope:
  本文面向的读者是Microsoft SQL Server维护人员。
  继续阅读之前,我们假设您熟悉以下知识:
  n Microsoft SQL Server
  1.以前的文章
  从前写过一篇
  数据库日志文件丢失时的恢复步骤,描述我误删除了数据库的事务日志文件(.ldf)之后,如何经过各种尝试恢复数据库的。
  但是不少网友在处理“数据库置疑”的实践过程中,又产生了许多新的疑问。
  我还是总结一下出现的几种情况,以供参考。
  2.Zach的灵验脚本
  Zach说他每次遇到这种数据库置疑情况,就运行下面这个脚本,屡试不爽:
  
  ======================================================
  --before running any script, run the following to set the
  master database to allow updates
  USE master
  GO
  sp_configure 'allow updates', 1
  GO
  RECONFIGURE WITH OVERRIDE
  GO
  --Run the following script
  UPDATE master..sysdatabases SET status = status ^ 256
  WHERE name = 'Database_Name'
  --Run the following script
  exec SP_resetstatus Database_Name
  --stop and start the MSDTC at this stage
  --After the procedure is created, immediately disable
  updates to the system tables:
  exec sp_configure 'allow updates', 0
  GO
  RECONFIGURE WITH OVERRIDE
  GO
  =====================================
  从上面可以看出,处理置疑的基本步骤还是我那篇文章中说的(注意我使用的字体颜色):
  执行 sp_configure 以允许对系统表进行更新,然后用 RECONFIGURE WITH OVERRIDE 语句强制实施该配置;
  数据库重置紧急模式;
  执行sp_resetstatus关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项(只有系统管理员才能执行)。执行该过程后,立即重启 SQL Server服务;
  执行 sp_configure 以禁止对系统表进行更新,然后用 RECONFIGURE WITH OVERRIDE 语句强制实施该配置。
  
  status ^ 256的意思就是:
  
  Constant
  Value
  Description
  SQLDMODBStat_Suspect
  256
  Database integrity is suspect for the referenced database.
  
  不同的是,有时候丢失了数据库日志文件,额外需要以下步骤:
  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表