【官方】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
- 提问者对最佳回答的评论:
- --①设置数据库为可更新状态
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
单用户模式: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
快到期问题