62库

您现在的位置是:首页 > 前端开发 > Html/Css > 正文

Html/Css

SQL2005数据库置疑处理

Admin2023-11-11Html/Css40

2005中遇到置疑、丢失日志时按照网上常见的MSSQL2000修复方法来做,
结果发现行不通,甚至连一步都做不下去。其实,在MSSQL2005在处理置疑问题的思
路与MSSQL2000是一致的,但具体到一些语句上MSSQL2005 有了很大的变动。我们以
一个被误删日志文件的数据库为例:
1.MSSQL2000在日志被误删除后会提示置疑(suspect),而在MSSQL2005中却没有特
殊标志,但图标前的”+”不见了当你查询数据库属性时会有Error:945提示:

2.顺着老思路,首先我们想到先进入紧急模式:
MSSQL2000进入紧急模式:
Use
Master
Go
sp_configure 'allow updates',
1
reconfigure with override
Go
update sysdatabases set status = 32768 where
name = 'dbname'
MSSQL2005进入紧急模式的方法简单了
alter database dbname set
emergency

3.重建日志文件
MSSQL2000使用DBCC
REBUILD_LOG。
在MSSQL2005中没有了DBCC
REBUILD_LOG
可MSSQL2005中是使用dbcc
checkdb('dbname',REPAIR_ALLOW_DATA_LOSS)。

当然要想使用dbcc checkdb我们得进入单用户模式:
sp_dboption 'dbname', 'single
user','true'

alter database dbname set
single_user(推荐使用后者)

4.再运行dbcc
checkdb看看是否有损坏的页
5.恢复多用户模式
sp_dboption 'dbname', 'single
user','false'

alter database dbname set
multi_user(推荐使用后者)

6.恢复非紧急模式
alter database dbname set
online

总结:

2005数据库当出现置疑时,可以通过以下语句来解决:

Use Master
Go
sp_configure 'allow updates',
1
reconfigure with
override
Go

alter
database dbname set emergency

go

alter database dbname set
single_user

go

dbcc
checkdb('dbname',REPAIR_ALLOW_DATA_LOSS)

go

alter database dbname set
multi_user

go

alter
database dbname set online

go

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~