SQLServer 还原 全备、差异和日志

时间:2024-04-01 17:54:55

首先感谢‘听风吹雨’的攻略。(SQL Server 备份还原全攻略 - 听风吹雨 - 博客园)

可能因为这份攻略是在以前的版本上做的,所以我在2012上实践时遇到一些问题。下面列出来和大家分享,希望有高手能帮忙解惑。

1.创建三个备份,完整、差异和日志。在下图中的备份类型中选。三个备份的名字不同,分别是全备是testbackup.bak, 差异是testbackup-diff.bak, 日志是testbackup-log.bak。它们会在后面的还原中用到。

SQLServer 2012 还原 全备、差异和日志

下图是修改备份文件路径的地方。

SQLServer 2012 还原 全备、差异和日志

2.全备还原

这个没有什么问题,右键一个db,任务-->还原-->数据库 打开还原界面。在常规中选好全备的文件即可

SQLServer 2012 还原 全备、差异和日志

注意1.如果不是还原的原本的数据库(即我备份的是testbackup,但是我还原到了testbackup2中),则需要在文件选项中修改还原到的文件路径。

SQLServer 2012 还原 全备、差异和日志

注意2.在右上角有个警告,这是因为在选项页中,它默认勾选了还原前进行结尾日志备份。如果是要覆盖原数据库,则去掉这个勾选。并在还原选项中勾选 覆盖现有数据库(WITH REPLACE)。

SQLServer 2012 还原 全备、差异和日志

注意3.如果你是和我一样,需要后续还原差异和日志备份的。那么上图中的 恢复状态不要选 RESTORE WITH RECOVERY, 而应该改成RESTORE WITH NORECOVERY。因为选recovery之后,这个数据库就立即可用了。不能继续进行后续的还原操作。

修改好,确定后,可以看到成功提示。并且可以看到testbackup2现在处于正在还原状态。

SQLServer 2012 还原 全备、差异和日志


3.差异备份

这个我是网上找资料+自己实验得到的经验。不一定正确,但是有效果。希望有高手来确认一下~

(1)打开还原界面 任务-->还原-->文件和文件组(不是数据库)。 我试过数据库是不行的,网上有人这样成功了。我试了一下确实可以。(这里也是和听雨文章不同的地方之一)

SQLServer 2012 还原 全备、差异和日志

(2)选好差异备份的文件,并在选项中修改还原到的路径、覆盖和NORECOVERY。都和全备设置一样。

SQLServer 2012 还原 全备、差异和日志

确认成功

3.日志备份

(1)打开还原界面 任务-->还原-->事务日志。还原的勾一定不要忘记(前面的备份也是)

SQLServer 2012 还原 全备、差异和日志

(2)这次因为整个还原都结束了,所以在选项中选择 RECOVERY

SQLServer 2012 还原 全备、差异和日志

搞定收工!