zoukankan      html  css  js  c++  java
  • 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!

    如果有更方便的方案,大家提出来。谢谢! 
    作者:管宇

    欢迎转载,请标明出处。

  • 相关阅读:
    【高精度】NCPC 2014 C catalansqure
    【动态规划】【缩点】NCPC 2014 G Outing
    【KMP】【最小表示法】NCPC 2014 H clock pictures
    【图论】【宽搜】【染色】NCPC 2014 A Ades
    【模拟】NCPC 2014 E ceremony
    【模拟】NCPC 2014 D Dice Game
    【模拟】NCPC 2014 K Train passengers
    【二分】NEERC15 L Landscape Improved(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
    【模拟】NEERC15 G Generators(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
    【模拟】NEERC15 J Jump(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
  • 原文地址:https://www.cnblogs.com/winner2009/p/2425046.html
Copyright © 2011-2022 走看看