具体原因如下:
硬件环境:NT4.0 + SQL Server 7.0
数据库hd由于机器意外重启后被sql server标记为supect不能使用,而且*.mdf文件也被破坏无法恢复。最后只能是尝试把备份文件恢复,该备份是hd库的完全备份,而且在备份的过程中也做了完整性的检查,该备份文件超过40G,所以在该备份文件只能放到经过压缩的文件中。在恢复该备份文件的过程,大概是到了50%的时候就出现了以上所的错误提示,接着就是中断退出经过restore verifyonly检查该备份文件也是有效的,对于这样的情况真的非常不明白
硬件环境:NT4.0 + SQL Server 7.0
数据库hd由于机器意外重启后被sql server标记为supect不能使用,而且*.mdf文件也被破坏无法恢复。最后只能是尝试把备份文件恢复,该备份是hd库的完全备份,而且在备份的过程中也做了完整性的检查,该备份文件超过40G,所以在该备份文件只能放到经过压缩的文件中。在恢复该备份文件的过程,大概是到了50%的时候就出现了以上所的错误提示,接着就是中断退出经过restore verifyonly检查该备份文件也是有效的,对于这样的情况真的非常不明白
EXEC sp_attach_single_file_db @dbname='yourdb',
@physname='路径\*.mdf'不行的话再试下面的办法:
执行以下语句,
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
update sysdatabases set status = 32768 where name = '<db_name>'
Go
接着重新建立一个log文件,如果没有错误那就差不多了。
把SQL Server重起,设置成单用户模式,然后做dbcc
sp_dboption '<db_name>', 'single user', 'true'
DBCC CHECKDB('<db_name>')
把数据库改回原来的状态
update sysdatabases set status = 28 where name = '<db_name>'
go
sp_configure 'allow updates', 0
reconfigure with override
Go
如果checkdb报告错误,这些错误数据就不能恢复了。
good luck