数据库重建日志.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重建日志 ---恢复数据库的最后希望 问题来源:泉州分公司 U8产品支持部15号工程师 2003年09月23日 问题现象 该数据库版本为SQLSERVER2000,数据库日志文件已经被删除,只 剩下MDF文件。用数据库附加命令无法附加。 而且用户已经没有其他的可用备份,如果无法恢复这个数据库,将会 给客户带来严重的损失!!! 现在,只有寄希望与重建数据库日志来恢复了! 解决方法 首先建立一个数据库,与需要恢复的数据库同名,此例为 UFDATA_001_2003。 此处需要特别注意的是,数据库一定要同名,文件组也要相同(不过 U8软件建立数据库的时候不会改文件组,默认的是PRIMARY文件组), 文件名也要相同,U8建立的文件名为UFDATA.MDF和UFDATA.LDF (此处建议MDF文件同名,LDF文件不同名,稍后会介绍原因); 解决方法 数据库建立好了,停止数据库服务,然后用需要恢复的MDF文件覆 盖刚建立的数据库文件,此时启动数据库服务,进入企业管理器中查看, 该数据库被设置为置疑(suspect)状态;在这个状态下数据库是不可用 的,见下图: 解决方法 首先我们要将该数据库的状态改变,改变为紧急状态。 进入查询分析器,对应MASTER数据库,执行如下语句: sp_configure allow, 1 --修改系统数据库为可以修改,只有这样数据库的系统表才能修改 reconfigure with override update sysdatabases set status = 32768 where name = UFDATA_001_2003 --将该数据库状态设置为紧急状态(32768) 此时在企业管理器中刷新后可见如下图: 解决方法 关键的一步到了,让我们来给数据库重建日志文件把! 首先,停止数据服务,把原来的LDF文件改名(不能删除),然后再 启动数据库服务,进入查询分析器MASTER库下执行下列语句: DBCC REBUILD_LOG (UFDTA_001_2003, E:\UFSOFT850\ZT001\UFDATA.LDF ) --重建日志文件(改为与U8默认的日志文件同名,参见步骤1) restore database UFDATA_001_2003 WITH RECOVERY GO 解决方法 执行上述语句后,80%会返回如下的消息: 警告: 数据库 ‘UFDATA_001_2003’ 的日志已重建。已失去事务的一 致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库 选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联 系。RESTORE DATABASE 操作成功地处理了 0 页,花费了 0.000 秒 (0.000 MB/秒)。 如果返回的是上述信息,说明数据库已经默认了你新建的日志文件, 要是数据库不认,那么您也不用往下看了,您只能在覆盖MDF文件后把数据库的状态改为可用,然后输出其中的表了。 解决方法 此时该数据库的状态应该是处于DBO ONLY的状态,如下图: 您可以看见,现在里面的表都是可用的了,但是我们还需要把他的 状态改为正常的状态才可以。 解决方法 在查询分析器中执行如下语句: update sysdatabases set status = 4194316 where name = UFDATA_001_2003 --修改为正常状态; 千万别忘记,前面我们修改了数据库让他的系统表可以修改,现在 一定要修改回来,否则客户无意中修改了系统数据库,那麻烦可就是大 了!!! --修改系统数据库状态为不可写: sp_configure allow, 0 reconfigure with override GO 解决方法 似乎恢复完成了,但是为了确保日后的使用没有问题,我们需要检查 一下数据库是否还有问题,还是用DBCC: DBCC CHECKDB (UFDATA_001_2003) 如果没有返回错误提示,那么您可以放心的使用了,如果有错误提 示,那么您还得用DBCC来修复,不过,其中由于修复而丢失的数据是 没有办法的了,修复的语句见下页,该语句需要反复的执行,直到没有 任何错误提示为止!! 解决方法 sp_dboption @dbname = ufdata_001_2003, @optname = single user , @optvalue = true use ufdata_001_2003 GO

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档