首先感谢‘听风吹雨’的攻略。(SQL Server 备份_和_还原全攻略 - 听风吹雨 - 博客园)
可能因为这份攻略是在以前的版本上做的,所以我在2012上实践时遇到一些问题。下面列出来和大家分享,希望有高手能帮忙解惑。
1.创建三个备份,完整、差异和日志。在下图中的备份类型中选。三个备份的名字不同,分别是全备是testbackup.bak, 差异是testbackup-diff.bak, 日志是testbackup-log.bak。它们会在后面的还原中用到。
下图是修改备份文件路径的地方。
2.全备还原
这个没有什么问题,右键一个db,任务-->还原-->数据库 打开还原界面。在常规中选好全备的文件即可
注意1.如果不是还原的原本的数据库(即我备份的是testbackup,但是我还原到了testbackup2中),则需要在文件选项中修改还原到的文件路径。
注意2.在右上角有个警告,这是因为在选项页中,它默认勾选了还原前进行结尾日志备份。如果是要覆盖原数据库,则去掉这个勾选。并在还原选项中勾选 覆盖现有数据库(WITH REPLACE)。
注意3.如果你是和我一样,需要后续还原差异和日志备份的。那么上图中的 恢复状态不要选 RESTORE WITH RECOVERY, 而应该改成RESTORE WITH NORECOVERY。因为选recovery之后,这个数据库就立即可用了。不能继续进行后续的还原操作。
修改好,确定后,可以看到成功提示。并且可以看到testbackup2现在处于正在还原状态。
3.差异备份
这个我是网上找资料+自己实验得到的经验。不一定正确,但是有效果。希望有高手来确认一下~
(1)打开还原界面 任务-->还原-->文件和文件组(不是数据库)。 我试过‘数据库’是不行的,会报错说”LSN链接端口“。而试了一下‘文件和文件组’是可以。(这里也是和听雨文章不同的地方之一)可能在原来的版本是设置数据库,而现在则是文件和文件组。实际在代码实现时是看不到这个问题的,因为语句都是一样的。
(2)选好差异备份的文件,并在选项中修改还原到的路径、覆盖和NORECOVERY。都和全备设置一样。
确认成功
3.日志备份
(1)打开还原界面 任务-->还原-->事务日志。还原的勾一定不要忘记(前面的备份也是)
(2)这次因为整个还原都结束了,所以在选项中选择 RECOVERY
搞定收工!