SQL2000数据库文件损坏,急急急~~!在线等待~~!只要解决,多少分都给~~!help me~!

时间:2022-03-06 20:39:30
重起计算机(windows2000)后发现一个数据库(SQL2000)为质疑状态~!

察看日志:I/O error (torn page) detected duing read at offset 0x00000000012000 ub file

分离数据库后无法附加,报错信息为:不可识别的数据库文件。

非常着急,在线等待~~!

高分回报,不够再加~~!

13 个解决方案

#1


你为什么不做备份呢?看看用日至也许可以恢复的呀。

#2


to kinglccs(Amazon):
    用日至~~?
    请教~~!

#3


help me~~!

#4


右键置疑状态的数据库-->所有任务-->脱机
右键脱机状态的数据库-->所有任务-->联机

#5


如果不行:

这个问题比较复杂,引起的原因页很多。另外,你备份后的数据如果是在置疑之后备份的恢复之后也是置疑的。  
数据库置疑之后,你可以查看系统数据库maseter中的sysdatabase中的status列,如果该列值是256表示置疑  
你可以手工恢复  
必须以sa登陆  
USE  master  
GO  
sp_configure  'allow  updates',  1  
GO  
RECONFIGURE  WITH  OVERRIDE  
GO  
sp_resetstatus    
go  
 
update  sysdatabase    
set  status  =  status  -256  
where  dbname="your  database  name  here"  
and  status&256=  256(或者直接写256)  
go  
sp_configure  'allow  updates',  1  
GO  
RECONFIGURE  WITH  OVERRIDE  
GO  
sp_resetstatus    
go  
这样一般能恢复

#6


试试,创建一个同名的数据库.

停止SQL服务.

复制你有问题的数据文件来覆盖刚才创建的数据库的数据文件.

再启动SQL试试.

#7


重置置疑状态
如果 SQL Server 因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复,那么 Microsoft® SQL Server™ 2000 会返回错误 1105 并且将 sysdatabases 中的 status 列设为置疑。按下面的步骤解决这个问题: 

执行 sp_resetstatus。
用 ALTER DATABASE 向数据库添加一个数据文件或日志文件。
停止并重新启动 SQL Server。 
用新的数据文件或日志文件所提供的额外空间,SQL Server 应该能完成数据库的恢复。
释放磁盘空间并且重新运行恢复操作。 
sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。
注意  只有在您的主要支持提供者指导下或有疑难解答建议的做法时,才可以使用 sp_resetstatus。否则,可能会损坏数据库。


#8


--手工重置置疑状态
USE master 
go
sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE 
go
update sysdatabases set status = status^256
where dbname='你的数据库名' and status & 256 = 256
go 
sp_configure 'allow updates', 1 RECONFIGURE WITH OVERRIDE 
go 

#9


新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

#10


都试过了,还是不行~~!

没救了~~!

55555555555~~!

#11


up

#12


我遇到得是model,赫赫,我直接找了個copy過去.

同情..

#13


pls:
http://www.csdn.net/Develop/article/24/24312.shtm

#1


你为什么不做备份呢?看看用日至也许可以恢复的呀。

#2


to kinglccs(Amazon):
    用日至~~?
    请教~~!

#3


help me~~!

#4


右键置疑状态的数据库-->所有任务-->脱机
右键脱机状态的数据库-->所有任务-->联机

#5


如果不行:

这个问题比较复杂,引起的原因页很多。另外,你备份后的数据如果是在置疑之后备份的恢复之后也是置疑的。  
数据库置疑之后,你可以查看系统数据库maseter中的sysdatabase中的status列,如果该列值是256表示置疑  
你可以手工恢复  
必须以sa登陆  
USE  master  
GO  
sp_configure  'allow  updates',  1  
GO  
RECONFIGURE  WITH  OVERRIDE  
GO  
sp_resetstatus    
go  
 
update  sysdatabase    
set  status  =  status  -256  
where  dbname="your  database  name  here"  
and  status&256=  256(或者直接写256)  
go  
sp_configure  'allow  updates',  1  
GO  
RECONFIGURE  WITH  OVERRIDE  
GO  
sp_resetstatus    
go  
这样一般能恢复

#6


试试,创建一个同名的数据库.

停止SQL服务.

复制你有问题的数据文件来覆盖刚才创建的数据库的数据文件.

再启动SQL试试.

#7


重置置疑状态
如果 SQL Server 因为磁盘驱动器不再有可用空间,而不能完成数据库的恢复,那么 Microsoft® SQL Server™ 2000 会返回错误 1105 并且将 sysdatabases 中的 status 列设为置疑。按下面的步骤解决这个问题: 

执行 sp_resetstatus。
用 ALTER DATABASE 向数据库添加一个数据文件或日志文件。
停止并重新启动 SQL Server。 
用新的数据文件或日志文件所提供的额外空间,SQL Server 应该能完成数据库的恢复。
释放磁盘空间并且重新运行恢复操作。 
sp_resetstatus 关闭数据库的置疑标志,但是原封不动地保持数据库的其它选项。
注意  只有在您的主要支持提供者指导下或有疑难解答建议的做法时,才可以使用 sp_resetstatus。否则,可能会损坏数据库。


#8


--手工重置置疑状态
USE master 
go
sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE 
go
update sysdatabases set status = status^256
where dbname='你的数据库名' and status & 256 = 256
go 
sp_configure 'allow updates', 1 RECONFIGURE WITH OVERRIDE 
go 

#9


新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

#10


都试过了,还是不行~~!

没救了~~!

55555555555~~!

#11


up

#12


我遇到得是model,赫赫,我直接找了個copy過去.

同情..

#13


pls:
http://www.csdn.net/Develop/article/24/24312.shtm