使用SQL Server维护计划实现数据库定时自动备份

时间:2024.4.5

使用SQL Server维护计划实现数据库定时自动备份

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库。要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业。启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是TestDB1+当时备份的日期字符串.bak。

declare @name varchar(250)
set @name='C:\Backup\TestDB1_'+
convert(varchar(50),getdate(),112)+'.bak'
BACKUP DATABASE [TestDB1] TO
DISK = @name
WITH NOFORMAT, NOINIT,
NAME = N'TestDB1-完整 数据库 备份',
SKIP, NOREWIND, NOUNLOAD

创建好步骤以后,接下来就是创建计划,创建计划的操作十分简单,界面上说明的很详细了,我就不多说了。另外还可以配置警报和通知,不过一般很少用这个。

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

“维护计划”是在SSMS的对象资源管理中“管理”节点下面。使用维护计划可以通过可视化的操作,只点点鼠标就可以创建数据库维护的SSIS包,然后仍然是通过SQL Server作业的方式来运行。维护计划与前面说到的备份方法本质的不同就是:维护计划是SSIS包,上面的是T-SQL脚本。

假设我们现在有一个生产系统的数据库需要进行备份,由于数据库中的数据很多,数据文件很大,如果每次都进行完整备份那么硬盘占用了很大空间,而且备份时间很长,维护起来也很麻烦。对此我们可以采用完整备份+差异备份的方式,每周日进行一次完整备份,每天晚上进行一次差异备份。使用差异备份可以减小备份文件的大小,同时还可以提高备份的速度,不过缺点就是必须使用上一次完整备份的文件和差异备份的文件才能还原差异备份时刻的数据库,单独只有差异备份文件是没有意义。

下面我来讲一下如何通过维护计划来实现完整备份+差异备份:

(1)在SSMS的对象资源管理器中右击“维护计划”,选择“维护计划向导”,系统将弹出向导窗口,如图:

这里向导已经告诉我们维护计划到底能够干什么了,其中最后一项“执行数据库备份”正是我们所需要的。

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

(3)单击“下一步”按钮,选择维护任务,这里就是可以在维护计划中执行的任务,如果你想执行的任务在这里没有,那就还是不用维护计划来做,自己写SSIS包或者SQL语句吧。我们要执行的任务都在这里,选中这2个任务,如图:

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

(5)选中“备份数据库(完整)”然后单击“下一步”按钮,系统将转到定义完整备份任务的界面,如图:

这个界面实在太长了,我把任务栏隐藏了都显示不完,出现了滚动条,这里我们选择要进行备份的数据库,选择为每个数据库创建备份文件,文件保存在C盘Backup目录下,扩展名是bak,出于安全起见,我们可以选中“验证备份完整性”,当然也可以不选。在SQL2008中提供了压缩备份的新特性,使得备份文件更小,备份速度更快,这里我们就是由压缩备份。最后是选择执行计划,我这里选的是每周日晚上0点的时候执行。

(6)单击“下一步”按钮,进入差异备份任务的设置界面,和上一步的界面是一样的,操作也是一样的,计划这里我们可以选择除了周日以外的每天进行差异备份,如图:

(7)单击“下一步”按钮,进入选择报告选项,这里我们可以将这个维护计划的执行报告写入文本文件中,也可以讲报告通过电子邮件发送给管理员。如果要发送邮件的话,那么需要配置SQL Server的数据库邮件,另外还要设置SQL Server代理中的操作员,关于邮件通知操作员的配置网上也讲的比较多,我这里就不详述了。

(8)单击“下一步”按钮,进入“完成该向导”的界面,系统列出了向导要完成的工作,如图:

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

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

现在维护计划是创建好了,急着想看看执行后的效果如何,不需要等到晚上12点去了,在“作业”下面,右击DbBackupPlan.Subplan_1,选择“作业开始步骤”系统便立即执行该作业,系统运行完成后,我们便可在C:\Backup文件夹下面有我们做的完整备份的备份文件。

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

这里需要注意的是,我们如果不是周日制定的该维护计划,那么制定该维护计划前一定要做个完整备份,而且该备份至少要保留到下周,不然到时候出了问题,发现只有这几个工作日的差异备份,而上一次的完整备份又被删了,那就郁闷了。

除了使用维护计划向导以外,我们还可以直接新建维护计划,也可以修改意见创建的维护计划。我们就以修改维护计划为例。对于前面创建好的完整备份+ 差异备份维护计划,现在我们需要每周对数据库备份进行一次清理,在完整备份完成后,要将1个月前的备份删除掉。那么我们只需要修改一下维护计划即可,具体操作如下:

(1)右击我们的维护计划,在弹出式菜单中选择“修改”选项,系统将新建一个选项卡来显示当前的维护计划。如图:

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

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

也就是说在成功完整备份了数据库后,接下来才执行清除历史记录任务。

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

这里既可以清除历史记录日志,也可以删除硬盘上的历史数据。这里我们要删除4周前的历史备份数据,单击“确定”回到计划面板,我们可以看到原本“清除历史记录”任务上的小红叉不见了。单击“保存”按钮,该计划便保存起来。(说明:我在SQL2008中文版虚拟机里面做的时候一旦修改维护计划,保存的时候就报错灾难性故障,不过我本机的英文版是正常的,不知道是我虚拟机的问题还是中文版的Bug,反正在英文版里面是对的。)

这样修改后,以后我们都不用手动去删除那些很久以前的数据库备份了,系统在执行完备份后就会删除那些满足条件的备份数据。

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

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


第二篇:sql server 20xx数据库维护计划


SQL Server 2005数据库维护计划

计算机系统各种软、硬件 故障、用户误操作以及恶意破坏是不可避免的,这些影响到数据的正确性甚至造成数据损失、服务器崩溃等致命后果。数据库的备份对保证系统的可靠性具有重要的作用。

下面会根据执行强度对维护任务及其相应的程序进行分类描述,执行强度用不同的时间间隔定义,包括每天、每周、每月和每季度,能够建立起良好的维护实务,确保SQL Server数据库性能和安全。

一、每天的例行维护任务

需要数据库管理员密切关注的维护任务,最好每天都检查一下,这样可以确保系统的可靠性、可用性、运行性能和安全。每天的例行维护任务包括:1、检查是不是所有被请求的SQL Server服务都正常运行。2、检查日常备份日志中成功、警告或者失败记录。3、检查Windows事件日志有没有错误记录。4、检查SQL Server日志有没有安全警告记录,例如非法登录。5、执行完全备份或差异备份。6、在设置了完全恢复模型或大容量日恢复模型的数据库上执行事务日志备份任务。7、核实SQL Server作业没有失败。8、检查所有的数据库文件和事务日志具有合适的磁盘空间大小。9、至少要监控处理器、内存或者磁盘计数器没有出现瓶颈。

二、每周的例行维护任务

关注程度稍逊于每天的例行维护任务,最好每周进行一次例行检查。每周的例行维护任务包括:1、执行完全备份或差异备份。2、检查以前执行的维护计划报告。3、检查数据库完整性。4、如果需要,执行收缩数据库任务。5、通过重新组织索引任务压缩聚集和非聚集表和视图。6、通过重新生成索引任务在数据页和索引页重新组织数据。7、更新所有用户表和系统表的统计信息8、清除备份、还原、SQL Server代理作业和维护计划等操作的历史数据。9、如果需要,手动增长数据库或事务日志文件10、清除执行维护计划残留下来的文件。

三、每月或每季度的维护任务

有一些维护计划不需要执行得过于频繁,可以每个月或每个季度执行一次。但是请不要以为这些任务不需要天天执行就无足轻重,这些任务可以确保数据库环境的健康,所以不要轻视以下这些维护任务:1、在测试环境中执行备份还原操作。2、将历史数据归档。3、分析收集的性能统计数据,与基准值相比较。3、检查并更新维护文档。4、检查并安装最新的SQL Server补丁和补丁包。5、如果运行簇、数据库镜像或日志传送,则监测故障转移。6、验证备份和还原进程是否遵循已定义的服务等级协议。7、更新SQL Server构建指南。8、更新SQL Server灾难恢复文档。9、更新维护计划列表10、修改管理员口令。11、修改SQL Server服务帐户口令。

具体步骤如下:

(1)启动【sql server Management Studio】,在【对象资源管理器】窗口里选择【管理】——【维护计划】选项。

2)右击【维护计划】,在弹出的快捷菜单里选择【维护计划向导】选项,弹出如图所示的【维护计划向导】对话框,单击【下一步】按钮:

3)弹出如图所示【选择目标服务器】对话框,在【名称】文本框里可以输入维护计划的名称;在【说明】文本框里可以输入维护计划的说明文字;【在服务器】文本框里可以输入要使用的服务器名;最后选择正确的身份证信息,单击【下一步】按钮。

(4)弹出如图所示【选择维护任务】对话框,在该对话框

里可以选择多种维护任务:检查数据库完整性、收缩数据库、重新生成或组织索引、更新统计信息、清除历史记录、执行sqlServer代理作业、备份数据库等。在本例中选择【备份数据库(完整)】复选框,其他维护任务的设置都大同小异。

(5)单击【下一步】按钮,弹出如图所示【选择维护任务顺序】对话框,如果有多个维护任务,在此可以通过【上移】和【下移】两个按钮来设置维护任务的顺序,设置完毕后单击【下一步】按钮。

(6)弹出如图所示【定义任务】对话框,在【数据库】下

拉列表框里可以选择要备份的数据库名;在【备份组件】区域里可以选择备份数据库还是备份数据库文件;在【目标】区域可以添加备份文件和备份设备、设置是否将备份数据追加到备份文件里等。设置完毕后单击【下一步】按钮。

(7)弹出如图所示【选择计划属性】对话框,单击【更改】按钮。

8)弹出如图所示【新建作业计划】对话框,在该对话框里可以设置备份数据库的时间及频率,设置完毕后单击【确定】按钮回到如下所示对话框,再单击【下一步】按钮。

(9)弹出如图18.24所示【选择报告选项】对话框,在该对话框里可以选择如果管理维护计划报告:可以将其写入文件中,也可以通过电子邮件发送数据库管理员。设置完毕后单击【下一步】按钮。

10)弹出如图所示【完成向导】对话框,单击【完成】按钮完成维护计划创建操作。

11)创建完维护计划后,请确认sql server代理是否启动:在【对象资源管理器】窗口里,右击【sqlServer代理】,在弹出的快捷菜单里选择【启动】选项。

更多相关推荐:
SQLServer20xx数据库维护计划

SQLServer20xx数据库完整与差异备份图解李厚明一管理右键维护计划维护计划向导二名称一栏输入计划名称一个计划可以有多个任务可以更改计划三选择计划任务如下图四安排任务的执行顺序五定义每项任务六设置报告存放...

SQL Server 20xx 数据库维护计划--优化数据库

SQLSERVER数据库维护计划针对各地SQLSERVER数据库运行一段时间后性能变得很慢的现像拟此优化方法一选数据库维护计划器二下一步三选择要维护的数据库打勾四更新数据优化信息说明调度的时间可以根据自己的需要...

SQL Server“数据库维护计划”

SQLServer数据库维护计划数据库维护计划功能在SQLServer20xx的企业管理器中可以找到说明1以下操作是在服务器的Windows20xxServer上进行操作的2由于SQLServer20xx执行备...

SQL Server数据库维护计划的实施步骤

作为网管员无论其管理的网络的规模是大还是小在日常的管理中除了维护网络平稳运行及时排除网络故障保护网络安全等工作以外备份网络中关键数据也是其中的一个非常非常重要的工作环节网络中的各种故障无非就分两种软件故障和硬件...

SQL Server 20xx维护计划实现数据库定时自动备份

在SQLServer中出于数据安全的考虑所以需要定期的备份数据库而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行所以我们不可能要求管理员每天守到晚上1点去备份数据库要实现数据库的定时自动备份最常用的方...

sqlserver自动备份设置

SQLSERVER20xx自动备份操作方法SQLServer20xx的定期备份是通过创建维护计划来实现的主要有两种方式1维护计划向导2新建维护计划用户手工创建注意1如果想在SQLServer20xx中使用维护计...

数据库自动备份sqlserver20xx

SQLSERVER20xx自动备份图解教程SQLSERVER20xx自动备份图解教程本文来源本文关键字SQLSERVER20xx自动备份维护计划SQLSERVER20xx自动备份创建SQLSERVER20xx自...

使用SQL Server 20xx维护计划实现数据库定时自动备份

使用SQLServer20xx维护计划实现数据库定时自动备份Database20xx0412Tag版权声明转载时请以超链接形式标明文章原始出处和作者信息及本声明在SQLServer中出于数据安全的考虑所以需要定...

SQL Server“数据库维护计划”

SQLServer数据库维护计划来源就是爱电脑网作为网管员无论其管理的网络的规模是大还是小在日常的管理中除了维护网络平稳运行及时排除网络故障保护网络安全等工作以外备份网络中关键数据也是其中的一个非常非常重要的工...

【SQL Server备份恢复】维护计划实现备份

SQLServer备份恢复维护计划实现备份每周数据库完整备份每天差异备份每小时日志备份在数据库管理中数据库备份是非常重要的通过维护计划向导可以很方便的完成数据库备份下面的例子说明了如何实现数据库的备份具体的备份...

SQL Server 20xx 无法添加维护计划的解决方法

SQLServer20xx无法添加维护计划的解决方法Thespecified39subsystem39isinvalidvalidvaluesarereturnedbyspenumsqlagentsubsyst...

SQLServer20xx中的SSIS维护计划

SQLServer的每一个版本都已经逐渐变得越来越自我调整和自我维护了然而对于基本维护的需求例如删除索引碎片更新统计数据检查数据库一致性以及进行备份仍然是不会消失的你可以想象一下索引的维护就像是给你的汽车换油备...

sql server维护计划(16篇)