您好,请您先 登陆 或者 注册

【官方】SQL2005、2008、20XX数据库置疑、可疑


问题补充:Sql Server 2005数据库被标记为“可疑”的解决办法

一、日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:赢通A5商业系统数据库名yta5sypro_01)进行些不正常操作如数据库在读写时而无故停止数据库,从而导致Sql Server 2005数据库不正常中断,当再次打开数据库时会发现某些数据库会被标记为“可疑”(suspect),即在数据库名旁加上了黄色的惊叹号,这时数据库就不能再被打开了,但数据库的结构及数据内容都还是存在的。

二、解决方法:
打开Microsoft SQL Server Management Studio(关闭数据库连接),打开查询分析器输入命令:

1. 修改数据库为紧急模式
ALTER DATABASE yta5sypro_01 SET EMERGENCY

2. 使数据库变为单用户模式
ALTER DATABASE yta5sypro_01 SET SINGLE_USER

3. 修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失(重要数据先做好备份)。进行此操作需先关闭数据库后再次打开查询分析器输入命令:
DBCC CheckDB (yta5sypro_01, REPAIR_ALLOW_DATA_LOSS)
命令执行完成后可能会出现以下警告: 警告: 数据库 'yta5sypro_01' 的日志已重新生成。已失去事务的一致性。RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。
运行 DBCC CHECKDB 验证物理一致性:
DBCC CheckDB (yta5sypro_01)
SQL会提示:数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。本警告不用理会。

4. 关闭后重开Microsoft SQL Server Management Studio(关闭数据库连接),打开查询分析器输入命令:
ALTER DATABASE yta5sypro_01 SET MULTI_USER

5. 开始->运行->输入cmd->打开DOS命令窗口,输入以下命令重启数据库服务
Net stop mssqlserver --停止服务
Net start mssqlserver --启动服务
最后打开Sql Server 2005时被标记为“可疑”的数据库已恢复正常状态。

三、赢通软件在平常使用时最好做好自动备份,以防数据丢失,备份盘最好不要在同一硬盘内,有网盘同步上传备份更安全,自动备份方法:http://www.yt-pos.com/ask/question.php?id=336

提问者: 李祥
等级:问不倒翁
时间:2013-08-18 17:53
悬赏:0
解决时间:2013-08-18 23:31
最佳答案
很好,很强大!
回答者:josense
等级:皇冠会员
时间:2013-07-27 15:22
您觉得最佳答案好不好?
目前有 5 个人评价
100% (5)
不好 0% (0)
提问者对最佳回答的评论:
--①设置数据库为可更新状态
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go

--②将数据库模式改为紧急
ALTER DATABASE yta5sypro_01 SET EMERGENCY

--③更改数据库单用户使用模式
sp_dboption 'yta5sypro_01', 'single user', 'true'

--④重建日志文件
dbcc checkdb('yta5sypro_01',REPAIR_ALLOW_DATA_LOSS)

--⑤检查数据库状态(可省略)
DBCC CHECKDB('yta5sypro_01')

--⑥取消单用户使用模式
sp_dboption 'yta5sypro_01','dbo use only','false'
go

--⑦改变数据库可更新状态
sp_configure 'allow updates', 0
reconfigure wITh override
Go
对最佳答案的评论 共 1 条
紧急模式:ALTER DATABASE YTA5HBPRO_01 SET EMERGENCY
单用户模式:ALTER DATABASE YTA5HBPRO_01 SET SINGLE_USER
生成日志:DBCC CheckDB (YTA5HBPRO_01, REPAIR_ALLOW_DATA_LOSS)
校验日志:DBCC CheckDB (YTA5HBPRO_01)
取消紧急、恢复多用户:ALTER DATABASE YTA5HBPRO_01 SET MULTI_USER
评论者:李祥
其它回答 共 7 条
学习
回答者:牛牛
等级:金牌会员
时间:2013-07-26 10:11
学习
回答者:JCLH
等级:问不倒翁
时间:2013-07-26 10:13
不错的学习资料
回答者:kh359
等级:问不倒翁
时间:2013-07-26 10:20
超级不错的教材!!!
回答者:bonchen
等级:问不倒翁
时间:2013-07-28 00:02
学习
回答者:hnaywz
等级:钻石会员
时间:2013-08-03 18:55
教材很好,多发一些,增加知识
回答者:wangze2005
等级:问不倒翁
时间:2013-08-04 09:37
很好的学习资料,保存
回答者:5249350
等级:普通会员
时间:2013-08-05 06:12
对最佳答案的评论:

评论字数200字以内
总积分排行
ytkf00720058 4704
kh35927124 3414
赢通技术43538 3053
bonchen13219 2797
赢通技术37615 2590
JCLH11087 1917
浅逝1873 1873
李祥19958 1542
xiaobird3309 1254
daoptt3310 1237