您的位置:首页 > 数据库

[收藏]恢复在为数据库添加多一个ndf文件时,中断操作所置疑的数据库.

2006-02-13 09:33 387 查看
我想添加为数据库添加多一个ndf文件的时候,由于我的机器出问题了,中断了操作,结果数据库的ndf文件没有生成,但sql却认为它生成了.我就把数据库分离,再附加,结果它因为没有ndf文件就不能附加,有无办法解决呢.

=================建议如下=================

zjcxc(邹建) (

) 信誉:662

既然它认为这个ndf文件已经建立好了, 那你就建立一个嘛:

1. 备份你的数据文件和日志文件
2. 创建一个新的空数据库, 要求数据文件和日志文件与你损坏的那个数据库的文件是一样的,当然也要包含创建一个与不成功创建的ndf文件名一样的ndf文件

3. 停止sql服务, 复制你备份的数据文件和日志文件, 覆盖你新建的数据库的对应文件,ndf文件保留不动

4. 启动sql服务, 这时步骤2中创建的数据库应该是质疑的、

5. 先不管,执行下面的语句(注意修改其中的数据库名)

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还有问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.

USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go

sp_dboption '置疑的数据库名', 'single user', 'true'
Go

DBCC CHECKDB('置疑的数据库名')
Go

update sysdatabases set status =28 where name='置疑的数据库名'
Go

sp_configure 'allow updates', 0 reconfigure with override
Go

sp_dboption '置疑的数据库名', 'single user', 'false'
Go

--新库的结构与旧库要完全一样,不通过dbcc检查, 在紧急恢复模式下, 也是可能读数据的。

---------------------------------------------------------------------

pbsql(风云) (

) 信誉:138

ndf文件,注意可能是多个文件组、多个数据库文件,建库时要一致

=======================解决如下=========================

hyqwater() (

) 信誉:99

经过近6个小时的艰苦奋斗.总于搞好了.先谢谢各位.我的水平有限制,希望各位指正....

由于我试数据库添加多一个ndf文件的时候,由于我的机器出问题了,中断了操作,结果数据库出现错误,其实我的ndf文件根本没有生成,只是数据库存在一条记录罢了.

1)创建一个新的空数据库, 要求数据文件和日志文件与你损坏的那个数据库的文件是一样的,当然也要包含创建一个与不成功创建的ndf文件名一样的ndf文件.

2)关键 在master的系统表sysaltfiles里面存在每个数据库文件的记录,我把我错误的记录删除.
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO

delete from sysaltfiles where name='错误的记录'
go
SP_CONFIGURE 'ALLOW UPDATES',0 RECONFIGURE WITH OVERRIDE
GO

2)重新启动数据库.你会发现数据库置疑了.

3)UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'

4)数据库状态变成了 "紧急模式" .我发现在紧急模式下,用查询分析器可以查询到数据里面的表(在企业管理器不行).搜索一下数据中sysfiles和sysfiles1,你会发现,一个表中有错误记录,而一个表就因为master里面删除了它也跟着删除了.

5)UPDATE SYSDATABASES SET STATUS =28WHERE NAME='置疑的数据库名',把数据库状态还原.

6)我的天啊,企业管理器里面正常显示了.这个时候,你先别高兴,你会发现在查询分析器里面正常查询,但建表失败,在企业管理器里面直接查询表失败,导入导出失败.

7)查看数据库属性,发现错误的ndf记录没有了.但sysfile1里面还有,如是,重新建立一个ndf,成功后,你会发现所有的操作都成功了,数据库还原了......

然后我马上把ndf删除,妈的,老子以后都不建你了.......

我的水平有限制,希望各位指正....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐