数据库附加提示错误,总是附加不上的解决办法.doc

上传人:枫** 文档编号:560192119 上传时间:2023-03-16 格式:DOC 页数:4 大小:28.50KB
返回 下载 相关 举报
数据库附加提示错误,总是附加不上的解决办法.doc_第1页
第1页 / 共4页
数据库附加提示错误,总是附加不上的解决办法.doc_第2页
第2页 / 共4页
数据库附加提示错误,总是附加不上的解决办法.doc_第3页
第3页 / 共4页
数据库附加提示错误,总是附加不上的解决办法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据库附加提示错误,总是附加不上的解决办法.doc》由会员分享,可在线阅读,更多相关《数据库附加提示错误,总是附加不上的解决办法.doc(4页珍藏版)》请在金锄头文库上搜索。

1、数据库附加提示日志错误,总是附加不上的解决办法 分类: sql 2010-09-14 19:42 35人阅读 评论(0) 收藏 举报 备份数据文件,然后按下面的步骤处理: 1.新建一个同名的数据库(数据文件与原来的要一致) 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) USE MASTER GO SP_CONFIGURE ALLOW UPDATES ,1 RECONFIGURE WITH OVERRIDE GO UPDAT

2、E 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 6.完成后一般就可以

3、访问数据库中的数据了,这时,数据库本身一般还要问题,我用上面的方法后,数据库可以正常使用了,当在导入数据的时候提示 回避恢复模式什么的,导入总是不成功数据库的脚本创建一个新的数据库,并将数据导进去就行了. 最后就是新建库把问题数据库的记录导入到新库中,在给新数据库导入新数据,成功奥!一下是同时收集到的资料,哈哈,多看看,也有好处嘛!只有mdf文件的恢复技术 由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。 如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,

4、但是会出现类似下面的提示信息 设备激活错误。物理文件名 C:/Program Files/Microsoft SQL Server/MSSQL/data/test_Log.LDF 可能有误。 已创建名为 C:/Program Files/Microsoft SQL Server/MSSQL/Data/test_log.LDF 的新日志文件。 但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 test 。CREATE DATABASE 将终止。 设备激活

5、错误。物理文件名 d:/test_log.LDF 可能有误。 怎么办呢?别着急,下面我们举例说明恢复办法。 A我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。 B停掉数据库服务器。 C将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。 D启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 E设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Ma

6、nager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure allow updates ,1 go reconfigure with override go F设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID( test ) 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读/置疑/脱机/紧急模式”可以看到数据库里面的表,但是仅仅

7、有系统表 G下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log( test , C:/Program Files/Microsoft SQL Server/MSSQL/Data/test_log.ldf ) 执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。brown/i 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出

8、SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库 test 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。 H验证数据库一致性(可省略) dbcc checkdb( test ) 一般执行结果如下: CHECKDB

9、发现了 0 个分配错误和 0 个一致性错误(在数据库 test 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 I设置数据库为正常状态 sp_dboption test , dbo use only , false 如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。 J最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成 sp_configure allow updates ,0 go reconfigure with override

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号