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
相关文章
- 一个测试SQL2005数据库连接JSP档
- 关于用insert向数据库中添加数据,如果字符型字段里有双引号或者单引号,该如何处理.
- 记一段使用node对mysql数据库做处理
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
- 在mysql数据库中关于日期时间字段的处理
- Oracle数据库返回字符类型-1~1的结果处理
- (Windows)异常处理:事件日志或数据库?
- PHP如何处理emoji表情存入utf8的数据库
- PL SQL 12.0.7的安装及注册码,汉化包,连接Oracle远程数据库,中文乱码问题处理
- 超简单使用批处理(batch)操作数据库