[收藏]恢复在为数据库添加多一个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删除,妈的,老子以后都不建你了.......
我的水平有限制,希望各位指正....
=================建议如下=================
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删除,妈的,老子以后都不建你了.......
我的水平有限制,希望各位指正....
相关文章推荐
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- SQL Server数据库文件恢复技术/数据库置疑
- 创建数据库、添加文件、表等操作
- Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- 无法升级数据库 'xxxx',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- 数据库文件损坏,用户管理恢复操作案例概述
- 【转载】linux中误删除oracle数据文件的恢复操作 分类: H2_ORACLE 2013-06-14 12:07 353人阅读 评论(0) 收藏
- sql中遇到非正常操作引起的数据库文件破坏的恢复
- MFC中简单的数据库文件操作(添加,修改,查找,删除)
- Sql Server实用操作-无数据库日志文件恢复数据库两种方法
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- 无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
- MFC中简单的数据库文件操作(添加,修改,查找,删除)
- [转贴]Sql Server实用操作-无数据库日志文件恢复数据库两种方法
- rman 备份后恢复整个数据库文件的操作
- centos下mysql添加用户,操作数据库,导入sql文件
- MFC中简单的数据库文件操作(添加,修改,查找,删除)