手机版

SQL Server 2005自动备份数据库维护计划实现数据库的定期自动备份

时间:2021-07-31 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库班级规模:40.7M语言:中文评分:6.6标签:立即下载网站或其他需要使用数据库的童鞋。备份数据库的时候最好选择晚上,这个时候使用的频率比较小,所以我们需要做一个数据库备份的计划。

虽然使用在SQL作业中执行的SQL脚本进行backup的方法很简单,但至少要写BACKUP脚本,有些人会觉得不舒服。有没有更简单更懒的方法来实现数据库的自动定时备份?是的,这就是“维护计划”。

维护计划在SSMS对象资源管理的管理节点下。使用维护计划,您可以通过可视化操作创建用于数据库维护的SSIS包,然后通过SQL Server作业运行它。维护计划和上面提到的备份方法的本质区别是维护计划是SSIS包,上面有T-SQL脚本。

假设我们有一个需要备份的生产系统数据库。因为数据库中的数据很多,数据文件也很大,每次完全备份的话硬盘会占用很多空间,而且备份时间很长,维护起来很麻烦。为此,我们可以采用完全备份和差异备份的方式,每周日进行一次完全备份,每晚进行一次差异备份。使用差异备份可以减少备份文件的大小,同时提高备份速度。但是缺点是,差异备份时的数据库只能使用上次完全备份的文件和差异备份的文件进行恢复。

我来谈谈如何通过维护计划实现完全备份差异备份:

(1)在SSMS对象资源管理器中右键单击维护计划,选择维护计划向导,弹出向导窗口,如下图:

在这里,向导已经告诉我们维护计划可以做什么,最后一项“执行数据库备份”正是我们需要的。

(2)点击“下一步”,进入选择计划属性窗口,输入计划名称。由于我们的计划包括完全备份和差异备份两部分,这两部分的执行计划是不同的,一个是每周执行一次,另一个是每天执行一次,所以我们应该选择“单独计划每个任务”,如图所示:

(3)点击“下一步”按钮,选择维护任务,即维护计划中可以执行的任务。如果您想要执行的任务不在这里,您应该在没有维护计划的情况下执行它,并自己编写SSIS包或SQL语句。我们要执行的所有任务都在这里。选择这两个任务,如图所示:

(4)点击“下一步”,进入维护任务顺序选择界面。这里我们可以看到选中的任务出现在列表中,但是我们不能调整它们的顺序。那是因为在第2步中,我们选择了独立规划每个任务,所以这两个任务是独立的,没有顺序。如果当时选择了另一个选项,可以在这里调整顺序。

(5)选择“备份数据库(完成)”,点击“下一步”,系统将进入定义完整备份任务界面,如图:

这个界面太长了。我无法完成任务栏的显示,出现了一个滚动条。在这里,我们选择要备份的数据库,并选择为每个数据库创建备份文件。文件保存在c盘的备份目录中,扩展名为bak。为了安全起见,我们可以选择“验证备份完整性”或不选择。在SQL2008中,提供了压缩备份的新功能,使备份文件更小,备份速度更快。最后,我选择执行计划。我选择每周日0: 00执行。

(6)点击“下一步”,进入差异备份任务设置界面,与上一步界面相同,操作相同。除周日外,我们可以选择每天执行差异备份,如下图所示:

(7)点击“下一步”按钮,进入选择报告选项,我们可以将该维护计划的执行报告写入文本文件或通过电子邮件发送给管理员。如果要发送邮件,需要配置SQL Server的数据库邮件,需要在SQL Server代理中设置操作符。网上关于邮件通知运营商的配置谈论的比较多,这里就不赘述了。

(8)点击“下一步”按钮,进入“完成向导”界面,系统列出向导要完成的任务,如图:

(9)单击“完成”,向导将创建相应的SSIS包和SQL作业:

(10)完成后,我们刷新对象资源管理器,可以看到相应的维护计划以及该计划对应的作业:

既然已经创建了维护计划,我急于看到实施后的效果,所以不需要等到晚上12点。在“作业”下,右键单击数据库备份计划。Subplan_1,选择“作业开始步骤”,系统将立即执行作业。系统运行后,我们可以在C:\Backup文件夹下拥有我们完整备份的备份文件。

以上操作可以是纯无键盘操作,不用写任何脚本,只需一点鼠标即可。

这里需要注意的是,如果周日不制定维护计划,在制定维护计划之前必须做一个完整的备份,备份至少要保留到下周。否则出了问题,发现这几个工作日只有差异备份,最后一次完整备份被删除,会很郁闷。

除了使用维护计划向导,我们还可以直接创建新的维护计划,或者修改意见创建的维护计划。让我们以修改维护计划为例。对于之前创建的完整备份的差异备份维护计划,现在需要每周清理一次数据库备份,在完整备份完成后删除一个月前的备份。那么我们只需要修改维护计划如下:

(1)右键点击我们的维护计划,在弹出的菜单中选择“修改”,系统会新建一个页签,显示当前的维护计划。如图所示:

左下角是可用的维护计划组件,右下角面板是维护计划的流程设置面板,面板上是计划的子计划列表。

(2)选择Subplan_1子计划,即每周完整备份子计划,将“清除历史记录”任务从工具箱拖放到计划面板,然后点击面板中的“备份数据库(完成)”组件,系统会显示一个绿色箭头,将绿色箭头拖动到“清除历史记录”组件,如图:

也就是说,在成功完全备份数据库后,接下来将执行清除历史的任务。

(3)右键单击“清除历史”任务,在弹出菜单中选择“编辑”选项,系统会弹出清除历史任务的设置窗口,如图:

在这里,您不仅可以清除历史日志,还可以删除硬盘上的历史数据。这里,我们要删除四周前的历史备份数据。点击确定返回规划面板,可以看到原“清除历史”任务上的小红十字不见了。点击“保存”按钮,计划将被保存。(注意:一旦在中文版SQL2008虚拟机中做维护计划时修改了维护计划,保存时会报告灾难性故障。不过,我的机器英文版是正常的。不知道是我的虚拟机有问题,还是中文版的Bug。不管怎么说,英文版是正确的。)

这次修改后,我们不需要很久以前就手动删除数据库备份,备份完成后系统会删除符合要求的备份数据。

另外,如果用过SSIS的人应该知道任务完成时是绿色箭头,失败时是红色箭头,我们也可以在这里设置。如果上一步失败,将执行什么操作?双击绿色箭头,并在弹出对话框的约束选项中选择“失败”的值。如图所示:

复杂的逻辑操作和执行流程也可以在维护计划中设置,就像SSIS设计一样,毕竟他们本质上是在设计SSIS包。

一般西溪选择完整性备份。

版权声明:SQL Server 2005自动备份数据库维护计划实现数据库的定期自动备份是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐