SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid ................................
一、
use jweb_zk
goALTER DATABASE jweb_zk SET SINGLE_USER --设置为单用户
DBCC CHECKDB (jweb_zk, repair_allow_data_loss) with NO_INFOMSGS --允许丢失错误
go
ALTER DATABASE jweb_zk SET MULTI_USER --设置为多用户
go
二、 修复某张表
exec sp_dboption '库名' ,'single_user','true' --设置数据为单用户dbcc CHECKTABLE('表名',REPAIR_ALLOW_DATA_LOSS)
exec sp_dboption '库名' ,'single_user','false' --设置数据库为多用户
三、数据库日志文件丢失 (test为数据库名)
1、
alter database test set emergency
alter database test set single_user with rollback immediate
alter database test rebuild log on (name=test_log, filename='E:\data\test_log.ldf')
ALTER DATABASE test SET MULTI_USER with rollback immediate
2、
use test
go
ALTER DATABASE test SET SINGLE_USER
DBCC CHECKDB (test , repair_allow_data_loss) with NO_INFOMSGS
go ALTER DATABASE test SET MULTI_USER
go
四、sql 2008 只用mdf 文件附加数据库
Create DATABASE AdventureWorksDW2008R2
ON (FILENAME = 'E:\DATA\AdventureWorksDW2008R2_Data.mdf')
FOR ATTACH_REBUILD_LOG
在数据库文件损坏时,自己想尝试恢复时,请先备份损坏的文件。可以将损坏的文件复制一份,然后使用上面方法等测试恢复。如果尝试之后还是报错,尽快找MS 或数据恢复公司恢复。
对于运行DBCC 检测数据库,如果仍旧有很多错误的时候(索引、页错位、逻辑IO错误等),建议新建数据库,然后将原来损坏的库中的表数据 插入新库中。