上周有同事对数据库进行了误操作,问我可不可以回到前一天的形状。恢复数据库的问题以前学DB2的时候遇到过,那时我想SQL Server中应该也会无方法把数据库恢复到前一天的。我的机器上ERP的数据库日志从800M增张到了2G,Log增长得这么快,想必是把所有的操作都记录上了。网上找了几天的材料,SQL Server Books Online也看了一个星期,没有找到答案,CSDN上找到一篇从日志恢复数据库的文章同SQL Server Online上面的说明一样写的不清不楚。问了几个公司里资历深一点的同事,都没有找到答案,昨天晚上6点半的时候醒来,想起DB2中的恢复模型,恢复的数据库应该是在恢复点之前的数据库,于是早早就起来,来到办公室,实验了一次,以为会成功,没想到还是没有成功恢复,很沮丧。
研讨这个问题都一个星期了,仍然没有处理,整个星期五一天都不好受,想起了Boy,一个新人训时跟我们开交流会的RD leader。结果还是没有答案,不过Boy很热情,把这个问题转发给了我们的DBA Running,Running好象是搞oracle的,sql server中的这种恢复也不熟悉,不过他说:多从原理方面考虑。
没辄,只好到Microsoft的官方网站上面去找一下,溜达了一圈,有一篇文章提到,最好不要使用Auto close,auto shrink选项,我想可能是这两个选项的问题吧。于是周五下午的时候,又试了一次,SQL Query Analyzer里面运转restore database等了半天都没反应,我只好祈祷能够恢复成功,结果并不如人愿,出来了红色的错误信息,说是数据库存取冲突,原来是SQL Server Enterprise Manager也在使用数据库,于是关了Enterprise Manager,果然顺利恢复了数据库,快乐地快要跳起来。
任务几个月,常常都感觉到理论方面的基础知识不够丰富,一些协助文档看不懂,或者运转不了的时候,常常都是由于理论基础。一些问题想要去处理常常要花很长的时间,所以当前还是从基础理论入手学习数据库。