SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid、数据库日志文件丢失

SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid ................................


一、

use jweb_zk  

go  
ALTER 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错误等),建议新建数据库,然后将原来损坏的库中的表数据 插入新库中。

你可能感兴趣的:(数据库sql)