SQLServer 2008以上误操作数据库恢复方法.pdfVIP

SQLServer 2008以上误操作数据库恢复方法.pdf

  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文档。上传文档
查看更多

SQLServer2008以上误操作数据库恢复方法——日志尾部备份

问题:

经常看到有人误删数据,或者误操作,特别是和的时候没

updatedelete

有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能

纵容,这个以后再说,现在先来解决问题。遇到这种情况,一般都是没有做备份,

不然也不会来发问了。首先要冷静,否则会有更大的灾难。直到你放弃。

解决方法:

对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名

的工具LogExploer,听说还挺好用的,这个网上大把教程,这里就不多说了。

但是唯一遗憾的是,不支持2008及更高版本,这时除了其他第三方工具,那么

最常用的就是本文提到的方法——日志尾部备份。本文实验环境2008R2,对于

2008及其以上版本可以使用这个方法,其实2005也可以,2000很少用,没试

过,只是2008之前可以使用LogExploer,所以就没必要用这种方法。

下面图文并茂讲解操作方法,至于原理,不属于本文范围,而且我相信真遇

到误操作的时候,估计没人会看原理了。

步骤:

()、检查数据库的恢复模式,如图:

1

或者使用脚本检查:

1.SELECTrecovery_model,recovery_model_des

2.FROMsys.databases

3.WHEREname=AdventureWorks

结果如下:

确保数据库的恢复模式最起码不能为【简单】。至于如何修改成完整模式,

我觉得这些应该没必要多说了。

切记,对于任何重要环境,不仅仅是客户正式环境(俗称生产环境),都强

烈建议使用【完整恢复模式】,虽然对于另外两种(大容量日志(BULK_LOGGED)、

简单(SIMPLE))来说,完整恢复模式产生的日志会大,但是在出现问题的时候,

就会觉得这些都不算什么了。并且我也想不到任何理由对于正式环境不使用完整

恢复模式。只要管理得当,完整恢复模式的日志也不会太变态。

(2)、这里其实隐含另外一步,曾经做过最少一次的完整备份。因为所有

类型的备份都基于完整备份,如果没有最少一次完整备份,其他类型的备份都是

多余的,所以在这里强调一下,在创建完一个新数据库之后,强烈建议甚至强制

做一次完整备份。

1.SELECTdatabase_name,recovery_model,name

2.FROMmsdb.dbo.bakupset

使用上面的语句粗略可以看到有那些数据库做过备份,由于测试,所以做了

几次备份,可以看到我这个时间点已经做了备份了。

(3)、确保别人不再连接数据库,然后做一次日志尾部备份:

首先先创建一点数据:

[sql]viewplaincopyprint?

1./*

2.由于tempdb永远为简单恢复模式,所以不适合做案例。

3.这里使用微软的示例数据库AdventureWorks

4.*/

5.USEAdventureWorks

6.GO

7.IFOBECT_ID(testRestore)ISNOTNULL

8.DROPTABLEtestRestore

9.GO

10.CREATETABLEtestRestore

11.(

12.idINTIDENTITY(1,1),

13.NAMEVARCHAR(50)

14.);

15.--插入测试数据:

16.INSERTINTOtestRestore(Name)

17.SELECTtest1

18.UNIONALL

19.SELECTtest2

20.UNIONALL

21.SELECTtest3

22.UNIONALL

23.SELECTtest4

24.UNIONALL

25.SELECTtest5

26.UNIONALL

文档评论(0)

文库垃圾佬 + 关注
实名认证
文档贡献者

这个人很懒

1亿VIP精品文档

相关文档