SQL2005自动定时备份数据库并按日期命名
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
让SQL2005自动定时备份数据库并按
日期命名
SQL2005的维护计划里面自带了备份数据库任务,但不会自动按日期命名,不方便,下面的方法是以存储过程来解决的。
1.启动Sql Server Agent 服务
2.创建作业
3.添加常规
4.添加步骤
5.添加计划,设置频率,时间等
二.每个步骤的详细操作
1.启动Sql Server Agent 服务 (可在运行中打开:services.msc)
打开【配置工具】中的【SQL Server Configuration Manager】窗口,点击【SQL Server 配置管理器(本地)】--【SQL Server2005 服务】,右面窗口显示的是当前所有服务的运行状态,右键点击【SQL Server Agent】选择启动菜单。
SQL Server Agent简介:/question/41264786.html
2.创建作业
打开【Management Studio】,展开SQL Server代理,右键点击【作业】选择【新建作业】菜单。【选择页】中选择【常规】
3.添加常规
在2中的【选择页】中选择【常规】选项,输入作业名称
4.添加步骤
在2中的【选择页】中选择【步骤】,点击窗口下方的【新建】按钮,输入步骤名称、选择操作数据库。在命令输入框中输入作业执行的T-SQL语句,这里备份的语句如下:
****************************************************************
DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ':' , '.')
set @strPath = 'c:\b\' + @strPath + '.bak'
BACKUP DATABASE [vrveis] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
*****************************************************************
有关WITH 后面的参数值的含义,请参考:
/zh-cn/library/ms186865.aspx
其中DATABASE [vrveis]的vrveis是要备份的数据库,@strPath备份的完成路径
还原数据库:restore database [数据库名] from disk=[磁盘路径]
WITH
NOINIT:不重写备份集的参数
NOUNLOAD:
* convert:函数简介:按照地区代码格式化时间的输入格式
convert(NVARCHAR(19),getdate(),120)
例如:SELECT CONVERT(nvarchar(19), getdate(), 120),
输出为:2008-11-29 15:45:59
* REPLACE ( 'string_expression_r1' , 'string_expression_r2' ,
'string_expression_r3' )
用第三个表达式替换第一个字符串表达式中出现的所有第二个指定字符串表达式的匹配项。
替换':' 是因为路径中有':'会报错
5.添加计划
在2中的【选择页】中选择【计划】选项,点击【新建】按钮。
输入名称、执行频率、每天频率。例如:要每天的凌晨自动备份数据库,执行频率选择每天、每天频率选择‘执行一次’执行时间:0:00:00,持续时间:选择开始
时间,不选结束时间。这样SQL Server会在每天凌晨自动执行这个作业,将数据库备份到D:\bak\的目录下,备份的文件名为:ZWJB2008-11-29 15-59-15.bak