Sql2005 Express 定时备份

我们知道Sql Server 企业版和标准版都可创建定时备份,很方便的,而Sql Express并没有这个功能,所以需要自己开发,思路是这样的。 

 

  1. 存储过程备份数据库。
  2. 做个批处理,利用sqlcmd执行存储计划。
  3. 利用windows计划,定时执行批处理。

 

在第二步的时候,需要你配置数据的允许远程连接。关于怎么配置请参考:

 

http://blog.csdn.net/wonsoft/article/details/4998677

 

或者

 

http://support.microsoft.com/kb/914277/  

 

存储过程如下如下:

 

 1  Create  PROCEDURE  [ dbo ]. [ BackDB ]
 2 
 3      @DBName sysname,
 4      @bakType  CHAR( 1),
 5      @bakToDir  NVARCHAR( 500)
 6 
 7 
 8  AS
 9  BEGIN
10 
11      DECLARE  @sqlCommand  NVARCHAR( 1000)
12 
13      DECLARE  @dateTime  NVARCHAR( 20)
14 
15      DECLARE  @bakFullPath  NVARCHAR( 500)
16 
17      SELECT  @dateTime = REPLACE( CONVERT( VARCHAR, GETDATE(), 111), ' / ', '') + REPLACE( CONVERT( VARCHAR, GETDATE(), 108), ' : ', '')
18 
19      IF  @bakType = ' F '
20 
21          BEGIN
22 
23          SET  @bakFullPath  =  @bakToDir  +  @DBName  +  ' _Full_ '  +  @dateTime  + ' .BAK '
24 
25          SET  @sqlCommand = ' BACKUP DATABASE  '  +  @DBName  +  '  TO DISK =  '''  +  @bakFullPath  + ''''
26 
27          END
28 
29      IF  @bakType = ' D '
30 
31          BEGIN
32 
33          SET  @bakFullPath  =  @bakToDir  +  @DBName  +  ' _Diff_ '  +  @dateTime  +  ' .BAK '
34 
35          SET  @sqlCommand = ' BACKUP DATABASE  '  +  @DBName  +  '  TO DISK =  '''  +  @bakFullPath  +  '''  WITH DIFFERENTIAL '
36 
37          END
38 
39      IF  @bakType = ' L '
40 
41          BEGIN
42 
43          SET  @bakFullPath  =  @bakToDir  +  @DBName  +  ' _Log_ '  +  @dateTime  +  ' .TRN '
44 
45          SET  @sqlCommand = ' BACKUP LOG  '  +  @DBName  +  '  TO DISK =  '''  +  @bakFullPath  +  ''''
46 
47          END
48 
49 
50      EXECUTE sp_executesql  @sqlCommand
51 

52 END 

 

执行存储过程(创建一个sql文件,比如:a.sql)

 

 

Use 数据库名称

EXEC BackDB N ' 数据库名称 ',N ' F ',N ' D:\data\a\ ';

 

 

 新建一个批处理文件,利用sqlcmd 登录数据库并且执行我们的文件(a.sql) 

 

 sqlcmd -S .\SQLEXPRESS --i a.sql   

 

创建一个记事本,吧上面的命令拷贝粘贴,修改扩展名为bat.  比如:a.bat 

 

参数介绍:

-E   : 使用可信任连接,而不是用户名和密码登录。

-S  :ServerName.  我在这里吃了亏,花费了好几个小时;  如果你的电脑对端口做了修改,同样要添加端口,比如改成这样:127.0.0.1:40000\SQLEXPRESS

-i  : 执行的文件名。 

 

关于sqlcmd更多参数请看这里

 

 一切准备就绪,下面是做个windows计划任务。

 

 开始 》  所有程序 》 附件》 系统工具》 任务计划

 

这个界面很简单,选择a.bat文件。什么时间执行。OK!

 

如果有更方便的方案,大家提出来。谢谢! 

 

 

posted on 2012-03-30 15:54  管宇 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/winner2009/archive/2012/03/30/2425046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值