| 设置首页 收藏站点 关于我们 联系站长

 | 首页 | 教程 | 脚本 | 博客 | 娱乐 | 图库 | 音效 | 软件 | 教案 | 论文 | 试题 | 课件 | 影视 | 

|| 您现在的位置: 中国课件资源网 >> 博客 >> 电脑技术 >> 正文
普通博客《自己的花是让别人看
普通博客社会主义市场经济的基
普通博客2007高考时事复习资料
普通博客[组图]MAX DOS 网刻教
普通博客一定能摸到红球吗?说
普通博客《直线和圆的位置关系
普通博客《地震中的父与子》说
普通博客《鲸》说课稿
普通博客北师大版四年上《商不
普通博客《早餐的学问》综合实
推荐博客便宜出租少量网站空间
推荐博客做教师的二十二条  评论
推荐博客本站《课件在线释疑群
推荐博客备课的“入格”与“出
推荐博客课件大师网站免费资源
推荐博客[图文]本站参与编写的
推荐博客毛主席最伤害美苏的两
推荐博客女人,请永远不要做第
推荐博客从卫生巾看女人的不易
推荐博客谁说情书不可以这样写
没有相关博客

MAX DOS 网刻教程

动态链接文件的丢失

雅鲁藏布大峡谷

Camtasia Studio 使

只有mdf文件的数据库附加失败的修复           ★★★
只有mdf文件的数据库附加失败的修复
副标题:
作者:佚名 文章来源:本站原创 点击数: 更新时间:2008-3-12 18:16:37
本文由课件大师网站收集、整理或撰写,转载请署原作者名,并请注明出处,谢谢合作!

因数据库日志太大,管理员将数据库分离,删除日志文件.ldf文件后再附加mdf文件,却报错,通常情况下是能够顺利附加的,可能mdf文件有问题导致附加失败,由于管理员在操作前未将数据库备份,最新的备份也是前一天晚上的,当天白天的数据没有备份,现在数据无法恢复,很是着急。

附加时报如下错误:

服务器: 消息 1813,级别 16,状态 2,行 1
未能打开新数据库 'test'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 "d:\data\test_log.LDF' 可能有误。

现在只有手动一步一步修复了,在网上搜到一种解决办法,试了以后成功了,现在记下步骤,路径和文件名大家依自己实际情况而定。

步骤:

A、用“企业管理器”新建一个同名的数据。可以修改默认路径,为表述方便,我使用D:\data\,数据文件名test.mdf,日志文件名test_log.ldf

B、停止SQL服务

C、删除test_log.ldf文件,将新建的test.mdf文件用旧的test.mdf文件替换。

D、启动SQL服务。进入企业管理器后发现test数据显示为“置疑”,此后保证无人连接上此数据库,并不做任何操作。

E、设置test数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。我在实际操作的时候没有使用命令,命令方式大家可以自己测试 ^_^

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')

执行后在企业管理器中刷新后会发现ttdb数据库显示为“只读\置疑\脱机\紧急模式”。可以看到数据库里面的表,但是仅仅有系统表。

G、重建数据库日志文件。在查询分析器中执行如下语句:

dbcc rebuild_log('test','d:\Data\test_log.ldf')

执行之前必须退出企业管理器,并且没有人连接些数据库。否则会报如下错误:

服务器: 消息 5030,级别 16,状态 1,行 1
未能排它地锁定数据库以执行该操作。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

正常的消息:

警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。可以访问数据库里面的用户表了。

H、验证数据库一致性(可省略,不过我忠实地执行了^_^),查询分析器中执行:

dbcc checkdb('test')

报出了每个表的执行情况后,最后报:

CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

I、设置数据库为正常状态。执行语句:

sp_dboption 'test','dbo use only','false'

走到这一步,如果没有报错,已经可以长长舒一口气了,去喝口水吧。:P

J、最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。怎么做当然不用再多说啦。也可以执行语句:

sp_configure 'allow updates',0
go
reconfigure with override
go

K、最后的最后总结一下,对数据库的重要更改,都记得要先备份哦。


博客录入:潜龙在野    责任编辑:潜龙在野 
  • 上一篇博客:

  • 下一篇博客: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |

    网站维护:潜龙 QQ:20885537 Email:WebMaster#PowerCai.Com备案编号:渝ICP备05001729号