SQL2005自动备份数据库

一。SqlServer自动作业备份

1、打开SQL Server Management Studio

2、启动SQL Server代理

3、点击作业->新建作业

4、"常规"中输入作业的名称

5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句

DECLARE @strPath NVARCHAR(200)

set @strPath = convert(NVARCHAR(19),getdate(),120)

set @strPath = REPLACE(@strPath, ':' , '.')

set @strPath = 'D:bak' + 'databasename'+@strPath + '.bak'

BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT

(D:bak改为自己的备份路径,databasename修改为想备份的数据库的名称)

6、添加计划,设置频率,时间等。

确定,完成。

二。使用SQL2005的维护计划自动备份(不推荐)

SQL2005的维护计划里面自带了备份数据库任务,但不会自动按日期命名,不方便,下面的方法是以存储过程来解决的。

要用SQL2005的维护计划功能首先要确认SQL Server Agent服务是在启动状态,然后打开SQL Server Management Studio,展开对象资源管理器里的“管理”,右击维护计划选择新建维护计划,为维护计划命名,如:TestDB_Backup,选择默认的子计划 “Subplan_1 ”并点击上方的子计划设置按钮来设置子计划执行方式和时间:

出现设置界面,设置每天3点执行一次.

确定后保存一下,然后新建一个查询页,开始创建存储过程,代码如下:

USE [TestDB]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500))

as

DECLARE @FullPath varchar(1000)

set @FullPath = @FolderPath+ ‘TestDB_’+convert(VARCHAR(4),year(getdate()))+right( ‘0′+convert(VARCHAR(2),MONTH(getdate())),2)+right(’0′+convert(VARCHAR(2),DAY(getdate())),2)+ ‘.bak’

backup database [TestDB] to disk=@FullPath WITH INIT

return

USE [TestDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500)) as DECLARE @FullPath varchar(1000) set @FullPath = @FolderPath+ ‘TestDB_’+convert(VARCHAR(4),year(getdate()))+right( ‘0′+convert(VARCHAR(2),MONTH(getdate())),2)+right(’0′+convert(VARCHAR(2),DAY(getdate())),2)+ ‘.bak’ backup database [TestDB] todisk=@FullPath WITH INIT return设置完毕,切换回维护计划设置页面,在左边的工具箱中拖入一个“执行T-SQL语句任务”:

双击拖入后的“执行T-SQL语句任务”,输入执行存储过程的语句来完成每天的自动备份工作,代码如下:

use [TestDB]

exec BackupDatabase ‘E:SqlDataTestDB’

use [TestDB] exec BackupDatabase ‘E:SqlDataTestDB’确定后保存该维护计划即可。为了保证该维护计划不会出现问题,可以先执行一下以上语句测试一下。

SQL2000下使用此方法与SQL2005大同小异。

总结了一下:第二种方法太过于繁琐,所以不推荐使用

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。