出于数据安全的考虑,对数据库数据进行定时备份是很有必要的,而数据库的备份时间一般都会选择在凌晨基本没有数据库操作的时候进行,因此设置数据库自动备份时很好的解决办法。
设置数据库自动备份我们可以选择两种方式:1.使用作业代理服务;2.使用SSMS对象里面的维护计划。
1.代理作业设置自动备份数据库
要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业。启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句
declare @name varchar(250) set @name='C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLBackupShopStoreData_'+convert(varchar(50),getdate(),112)+'.bak' BACKUP DATABASE [ShopStoreData] TO DISK = @name WITH NOFORMAT, NOINIT, NAME = N'ShopStoreData -完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD
注:ShopStoreData为需要备份的数据库名
name为存放备份的路径
创建好步骤下一步就是创建计划,这个很简单,不用多说,以上这个失去了语句会将ShopStoreData数据库完整备份。同时还可以设置警告与通知,警告与通知非必须设置的.
2.SSMS对象--维护计划
创建步骤时还需要写sql语句不是很方便,有一种更为简便的方式,简单的设置就可以搞定自动备份数据库。首先找到SSMS的管理节点->维护计划,右键维护计划向导如图:
填写维护计划名,已经维护计划的说明。
(4)单击“下一步”进入选择维护任务顺序的界面,这里我们可以看到选中的任务出现在列表中,但是我们并不能调整其顺序,那是因为在步骤2中我们选择的是每项任务单独计划,所以这2个任务是独立的,没有先后顺序可言。如果当时选择的是另一个选项,那么这里就可以调整顺序了。
(5)选中“备份数据库(完整)”然后单击“下一步”按钮,系统将转到定义完整备份任务的界面,
这个界面实在太长了,我把任务栏隐藏了都显示不完,出现了滚动条,这里我们选择要进行备份的数据库,选择为每个数据库创建备份文件,文件保存在C盘 Backup目录下,扩展名是bak,出于安全起见,我们可以选中“验证备份完整性”,当然也可以不选。在SQL2008中提供了压缩备份的新特性,使得备份文件更小,备份速度更快,这里我们就是由压缩备份。最后是选择执行计划,我这里选的是每周日晚上0点的时候执行。
(6)单击“下一步”按钮,进入差异备份任务的设置界面,和上一步的界面是一样的,操作也是一样的,计划这里我们可以选择除了周日以外的每天进行差异备份,如图:
(7)单击“下一步”按钮,进入选择报告选项,这里我们可以将这个维护计划的执行报告写入文本文件中,也可以讲报告通过电子邮件发送给管理员。如果要发送邮件的话,那么需要配置SQL Server的数据库邮件,另外还要设置SQL Server代理中的操作员,关于邮件通知操作员的配置网上也讲的比较多,我这里就不详述了。
(8)单击“下一步”按钮,进入“完成该向导”的界面,系统列出了向导要完成的工作,如图:
(9)单击“完成”按钮,向导将创建对应的SSIS包和SQL作业:
(10)完成后,我们再刷新下对象资源管理器,我们可以看到对应的维护计划和该计划对应的作业:
到此设置自动备份数据库完.在“作业”下面,右击 DbBackupPlan.Subplan_1,选择“作业开始步骤”系统便立即执行该作业,系统运行完成后,就可以看到已经备份完成的数据库