文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 微软SQL Server专区 » SQL Server数据库管理 » SQL日志文件丢失,只有MDF和NDF怎么恢复       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: SQL日志文件丢失,只有MDF和NDF怎么恢复  ( 查看:841  回复:7 )   
  本主题由 零距离 于 2007-9-19 21:33 移动    该主题悬赏的10无忧币已被全部领完 
 
marco2007
新新人类  点击可查看详细



帖子 6
精华 0
无忧币 10
积分 14
阅读权限 20
注册日期 2007-9-19
最后登录 2007-9-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-19 19:49   标题:SQL日志文件丢失,只有MDF和NDF怎么恢复
上一帖 |
日志文件丢失,只有MDFNDF怎么恢复?急!!!
楼主conanfans(高山)2006-03-27 21:23:20 在 MS-SQL Server / 疑难问题 提问
我重新装了系统,没有备份,只有一个mdf文件和3个NDF文件和一个LDF文件(丢失了3个),现在我按照社区的朋友给我的方式恢复:   
  A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL   Server   Enterprise   Manager里面建立。   
  B.停掉数据库服务器。   
  C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。   
  D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。   
  E.设置数据库允许直接操作系统表。此操作可以在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')   
  此时可以在SQL   Server   Enterprise   Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表   
   
  G.下面执行真正的恢复操作,重建数据库日志文件   
  dbcc   rebuild_log('test','C:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\test_log.ldf')   
  执行过程中,如果遇到下列提示信息:   
  服务器:   消息   5030,级别   16,状态   1,行   1   
  未能排它地锁定数据库以执行该操作。   
  DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。[brown]   
  说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL   Server   Enterprise   Manager打开了test库的系统表,那么退出SQL   Server   Enterprise   Manager就可以了。   
  正确执行完成的提示应该类似于:   
  警告:   数据库   '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'   
  如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。   
   
  J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL   Server   Enterprise   Manager里面恢复,也可以使用如下语句完成   
  sp_configure   'allow   updates',0   
  go     
  reconfigure   with   override   
  go   
   
   
   
  但是我执行到dbcc   rebuild_log('business','F:\business\business_log.ldf')   
  我新建的BUSINESS数据库的文件和日志放在:F:\business\下的,也用以前的MDF文件覆盖了新的,还把所有的NDF文件也COPY过来了,并且把新产生的business_log.ldf也删除了,但是执行的时候出错:   
  ----------------------------------------------------------------   
  服务器:   消息   5180,级别   22,状态   1,行   1   
  由于文件   ID   3(位于数据库   'business'   中)无效,所以未能打开   FCB。   
   
  连接中断   
   
  -------------------------------------------------------------------   
  应该怎么办啊??   
   
  应该怎么恢复啊???好急啊!!!!!   
  

直接拷贝MDF文件和LDF文件,可以吗?
楼主bagyje2004(bagyje2004)2005-01-24 10:25:24 在 MS-SQL Server / 基础类 提问
一台机器现在突然不能启动,我把它的硬盘挂到其它机器上面,   
  把它上面装的数据库拷贝出来,就是把MDF文件和LDF文件都拷贝出来,   
  在其它机器上面装个SQL   SERVER,能把这些MDF和LDF文件还原成原来的数据库吗?   
   
  这种情况,还有其它解决方案吗? 问题点数:20、回复次数:8Top

1 samuelpan(欧乐)回复于 2005-01-24 10:33:15 得分 20
可以的Top

2 skywebnet(小苯)回复于 2005-01-24 10:35:29 得分 0
一般情况下是可以的.Top

3 skywebnet(小苯)回复于 2005-01-24 10:36:11 得分 0
使用数据库附加功能,   
  sp_attach_dbTop

4 YangYuWeb(飘邈...)回复于 2005-01-24 10:36:26 得分 0
可以直接拷贝Top

5 Symsan()回复于 2005-01-24 11:53:31 得分 0
在所有任务的数据库附加,选择MDF文件久OK啦Top

6 uffeng(呆呆)回复于 2005-01-24 12:11:26 得分 0
附加就好了Top

7 lishuxiong83817(一年四季)回复于 2005-01-24 12:21:59 得分 0
sp_attach_db   
  将数据库附加到服务器。   
   
  语法   
  sp_attach_db   [   @dbname   =   ]   'dbname'   
          ,   [   @filename1   =   ]   'filename_n'   [   ,...16   ]   
   
  参数   
  [@dbname   =]   'dbname'   
   
  要附加到服务器的数据库的名称。该名称必须是唯一的。dbname   的数据类型为   sysname,默认值为   NULL。     
   
  [@filename1   =]   'filename_n'   
   
  数据库文件的物理名称,包括路径。filename_n   的数据类型为   nvarchar(260),默认值为   NULL。最多可以指定   16   个文件名。参数名称以   @filename1   开始,递增到   @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。   
   
  Top

8 swand(钢板日穿)回复于 2005-01-24 14:03:06 得分 0
进入企业管理器,右击数据库----所有任务---附加数据库....



网络虽虚拟,技术无边界,来看看大家“真面目”!
2007-9-19 19:491楼
[ 顶部 ]
 
marco2007
新新人类  点击可查看详细



帖子 6
精华 0
无忧币 10
积分 14
阅读权限 20
注册日期 2007-9-19
最后登录 2007-9-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-19 19:51 
OK,请顶一下.



网络虽虚拟,技术无边界,来看看大家“真面目”!
2007-9-19 19:512楼
[ 顶部 ]
 
marco2007
新新人类  点击可查看详细



帖子 6
精华 0
无忧币 10
积分 14
阅读权限 20
注册日期 2007-9-19
最后登录 2007-9-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-19 19:53 
欢迎跟贴,讨论.



网络虽虚拟,技术无边界,来看看大家“真面目”!
2007-9-19 19:533楼
[ 顶部 ]
 
51charles
新新人类  点击可查看详细



帖子 1
精华 0
无忧币 11
积分 1
阅读权限 20
注册日期 2007-9-19
最后登录 2007-9-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-19 20:51 
顶一下。积分自由!



网络虽虚拟,技术无边界,来看看大家“真面目”!
2007-9-19 20:514楼
[ 顶部 ]
 
cheyanlu
新新人类  点击可查看详细



十二生肖之鼠   金牛座   行业勋章   技术勋章   诚信兄弟  
帖子 200
精华 0
无忧币 326
积分 198
阅读权限 20
来自 (保密)
注册日期 2007-1-17
最后登录 2008-8-28 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2007-9-21 10:23 
关注一下呵呵



网络虽虚拟,技术无边界,来看看大家“真面目”!
2007-9-21 10:235楼
[ 顶部 ]
 
afeng13
新新人类  点击可查看详细



十二生肖之猴   双子座   行业勋章   技术勋章   诚信兄弟  
帖子 21
精华 0
无忧币 4
积分 29
阅读权限 20
注册日期 2007-9-17
最后登录 2008-5-23 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-21 16:02  ,被系统奖励 5 点无忧币
是不是建立数据库的时候应该跟第一次一样,数据库要有一个mdf文件和3个NDF文件,
然后分别覆盖啊?



网络虽虚拟,技术无边界,来看看大家“真面目”!
2007-9-21 16:026楼
[ 顶部 ]
 
yuhaijunll
新新人类  点击可查看详细



中秋活动勋章  
帖子 72
精华 0
无忧币 786
积分 133
阅读权限 20
注册日期 2007-2-7
最后登录 2008-5-9 离线

[查看资料]  [发短消息]  [Blog
[个人主页]         
发表于:2007-9-26 00:12 
关注中。等待高手重出江湖~~~



【专家门诊】Linux网络管理实战解疑
2007-9-26 00:127楼
[ 顶部 ]
 
kerryyu
超级版主  点击可查看详细


内阁大臣   中秋活动勋章  
帖子 155
精华 0
无忧币 1126
积分 492
阅读权限 200
来自 (保密)
注册日期 2007-5-31
最后登录 2008-9-3 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-9-26 14:37  ,被系统奖励 5 点无忧币
可以啊~我用上述步骤恢复成功过了~只要数据文件就可以了~



2007-9-26 14:378楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号