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

使用SQL Server 2008维护计划实现数据库定时自动备份 - [Database]

在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巡检报告-模板

SQL Server巡检报告

XXXX系统集成服务有限公司

密级:保密

XX省XX公司

SQL Server数据库系统

巡检报告

XXXX系统集成服务有限公司

20##年02月

第1章.        文档控制.................................................... 3

第2章.        巡检目的.................................................... 4

第3章.        系统基本信息巡检............................................. 4

第4章.        操作系统环境巡检............................................. 5

第5章.        数据库性能巡检............................................... 6

第6章.        数据库维护巡检.............................................. 11

第7章.        总结及建议................................................. 12


第1章.         文档控制


第2章.         巡检目的

A.    监控数据库的当前运行状况,确保数据库稳定运行。

B.     监控数据库的备份或容灾或集群状况,减少问题发生时的风险和责任。

C.     尽可能减少紧急故障发生频率。

D.    尽早发现系统存在的潜在问题,使可能的故障消除在萌芽状态。

E.     提出相应的合理改进建议。

第3章.         系统基本信息巡检

   SQL SERVER 2005是微软出品的数据库产品,以其卓越的性能和高超的稳定性在目前的企业应用中占据着重要地位。此次SQL Server维保保障SQL数据库系统的稳定工作的重要措施,在此感谢在巡检过程中给予我们帮助和支持的客户方员工。

A.  机器名称:Ufida

B.     硬件配置:Intel(R) CPU E5-2630 2.3GHz(2处理器),24核,16G内存

C.     操作系统版本:Windows Server 20## R2 X64 企业版 Windows NT 6.1 (Build 7600: )

D.    数据库版本:Microsoft SQL Server 20## SP3- 9.00.4035.00 (X64)

E.     工作模式:Windows域模式,域为tict.com.cn

F.      数据库端口:1433

G.    业务系统:用友财务、人事和考勤。

H.    内存使用:物理内存16G,实际使用5.95G,设置了最大内存12G。

第4章.         操作系统环境巡检

A.    检查系统日志

a)       使用“事件查看器”,查看系统日志,关注错误信息排查错误。

检查结果:正常

b)      重点关注与SQLServer相关的日志信息。

检查结果:有比较多的SA账户登陆失败,需进一步排查。

c)      及时备份与清理过期的日志信息。

检查结果:正常

B.     检查磁盘空间

a)       有C、D、E三个盘符,系统文件在C盘上,数据文件和日志文件在D盘上。

b)       检查系统文件所在的磁盘空间使用情况

检查结果:正常  已用空间:43.7G,可用空间53.9G

c)       检查数据文件所在的磁盘空间使用情况

检查结果:正常  已用空间:8.62G,可用空间479G

d)      检查日志文件所在的磁盘空间使用情况

检查结果:正常  已用空间:8.62G,可用空间479G

e)      检查备份的磁盘空间使用情况

检查结果:单机运行,没有备份。

第5章.         数据库性能巡检

1 

2 

3 

4 

5 


第6章.         数据库维护巡检

A.  主数据库(业务数据库)(查看数据文件和日志文件增长情况)

检查结果:正常 自动增长,每次增长10%,空间足够。

B.  镜像数据库

检查结果:单机数据库运行,没有配置镜像。

C.  辅助数据库(Log Shipping)

检查结果:单机数据库运行,没有配置日志传送(Log Shipping)。

D.  作业运行状况(通过图形界面“作业活动监视器”查看)

检查结果:没有作业,没有启动SQL Agent。

E.  备份状况(查看备份是否成功、验证备份集(RESTORE VERIFYONLY )、定期做数据库灾难恢复的演练-还原、HA)

检查结果:没有备份,也没有做双机热备HA。

第7章.         总结及建议

 总结:

1.. 数据库性能:CPU消耗低,2%以下,内存充足,不到设置的最大内存12G的50%,硬盘空间也充足。

2. 数据库安全性:较多的SA登陆失败,可能是正常的密码输入错误引起,也可能涉及安全风险。

3. 数据库备份容灾:当前用户只是在同一个硬盘、同一个SQL实例里有多个数据库,但是没有做普通意义上的备份和容灾,存在数据丢失风险。

建议:

1. 进一步核实SA登陆失败的原因。

2. 数据库的备份很重要,建议做好物理备份,物理备份和源数据库文件不能位于同一个物理磁盘上,一般需要位于不同的物理服务器上。鉴于财务系统的重要性,有预算的话,建议采用性价比高的第三方DBTwin数据库集群软件(应用级双活、故障时数据零丢失、安装维护简单)。不建议采用第三方的双机热备或者第三方的容灾备份方案。

厂商工程师                                                       维护责任人

签字:                                                       签字:

日期:                                        日期:

相关推荐