2、展开”管理“--“维护计划”,右键"维护计划"--“新建维护计划”--输入维护计划名称--这样会出现创建维护计划的窗口,然后 在左边的工具箱中(没有的话, 按Ctrl+Alt+X), 将"备份数据库任务"拖到中间的黄色区域,双击拖出来的这个任务(或者右键“属性”), 会出现设计属性的窗口;
3、在数据库中, 选择你要备份的数据库,然后设置备份到那里, 并且设置备份的文件名;如果要备份多个数据库,可以为每个数据库备份创建目录、名称;
5、单击"计划"后面的"..."按钮, 设置执行的时间计划.
最后保存就可以了.
注意事项:
1、必须把sql agent服务设置为自动启动;
2、同时注意启动定时备份任务;
3、如果要删除某段时间的备份,在左边的工具箱中(没有的话, 按Ctrl+Alt+X), 将"删除定时备份任务"拖到中间的黄色区域,双击拖出来的这个任务(或者右键“属性”), 会出现设计属性的窗口,进行相应的设置即可。
1.用SqlServer的维护计划在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个‘备份数据库'任务和一个‘清除维护'任务。
需要注意的点:
1)有备份任务里边选择备份的库尽量选‘所有用户数据库'这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份。
2)选项验证备份集完整性和压缩备份尽量都选上。
3)备份的路径尽量别选磁盘根目录。
2.通过脚本+作业的方式备份数据库(非xp_cmdshell)。如果是多个库的话自己写个游标用动态sql的方式即可实现多库备份,我这里就提供个思路偷懒就不整理了。
复制代码 代码如下:
DECLARE @filename VARCHAR(500)
DECLARE @date DATETIME
DECLARE @OLD_DATE DATETIME
SET @date=GETDATE()
SET @OLD_DATE=GETDATE()-5 --超过5天的备份即将被删除
SET @FILENAME = 'E:\存放位置\数据库名称-'+CAST(DATEPART(YYYY,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(MM,@DATE) AS VARCHAR(10))+'-'+CAST(DATEPART(DD,@DATE) AS VARCHAR(10))+'.BAK'
BACKUP DATABASE [数据库名称] TO DISK = @filename WITH COMPRESSION
EXECUTE master.dbo.xp_delete_file 0,N'E:\存放位置',N'bak',@OLD_DATE,1
GO
3.通过脚本+作业的方式备份数据库(用xp_cmdshell),如果你觉得你们服务器的网络、代码、以及防火墙足够安全可以开启xp_cmdshell的方式来备份。
如果数据库没开启xp_cmdshell的功能需要用以下脚本开通此功能,开通以后记得关闭sp_configure。
复制代码 代码如下:
USE Master
GO
EXEC sp_configure 'show advanced options', 1
SQLServer的维护计划里面自带了备份数据库任务,但不会自动按日期命名,不方便,下面的方法是以存储过程来解决的,以sql2000为例:
首先要确认SQL Server Agent服务是在启动状态
下一步,我们来创建作业,在创建作业之前,我们需要创建备份数据库及命名的存储过程
比如是对TestDB操作,打开查询分析器,把下面的存储过程拷到里面执行下就行了,当然了,命名规则可以自动更改
View Code
这样就创建了一个BackupDatabase的存储过程
下面来创建作业吧
常规里添加名称,选择下分类就行了,下面的步骤很重要
添加步骤的时候,有点很重要,就是执行刚才我们创建的存储过程如图
use [TestDB]
exec BackupDatabase 'E:\SqlData\TestDB\'
最后设置下自动备份的时间,也就是调度下即可
这样我们就创建一个这样定时备份数据库,以时间命名的作业
到了指定的时间会自动执行备份数据库,其他的sql2005和sql2008和sql2000大同小异
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)