最近由于换了新的工作,公司用了SQL 2005 EXPRESS ,可是没法实现数据的维护计划,对于不断增多急需做自动备份的工作十分头痛,在网上不断的找资料,都解释的不是很全,接下来,我整理给大家看下,因为我刚才已经TEST成功了,希望对大家有帮助,我可量百度SEACH了一天时间才弄出来

方法如下

1 首先用SQL Server Management Studio Express 登录到实例中

 

展开数据库,新建存储过程

 

复制如下语句到到右边

USE master

GO

CREATE PROC p

      @db_name sysname,         --数据库名

      @bk_path NVARCHAR(1024)     --备份文件的路径

 AS

      IF ISNULL(@db_name,'')=''

            SET @db_name=db_name() ;

     

      DECLARE @dt VARCHAR(50) ;

      SET @dt=@db_name+'_'+CONVERT(VARCHAR(8) , GETDATE() ,112)+'_';

      SET @dt=@dt+REPLACE(CONVERT(VARCHAR(10) ,GETDATE() ,108),':','')

 

      IF RIGHT(@bk_path,1)<>'\'

           SET @bk_path=@bk_path+'\';

 

      EXEC ('BACKUP DATABASE ['+@db_name+'] TO DISK='''+@bk_path+@dt+'.bak'' WITH FORMAT');

GO

根据实际数据库做修改

第二步

在某个文件夹里建两个txt文件  --如D:\batComand.txt跟D:\BackupDatabase.txt

--然后batCommand.txt文件内容如下:

sqlcmd -S TAIXIN-PC-11\SQLEXPRESS -E -i D:\BackupDatabase.sql

上面这条语句TAIXIN-PC-11\SQLEXPRESS是计算机名\实例名

然后保存.将扩展名改为.bat

然后BackupDatabase.txt文件内容如下:

USEmaster

GO

EXECp '要备份的数据库名','备份路径'

然后保存,将扩展名改为.sql

--第三步

新建任务计划.然后在选择执行哪个任务的时候..单击浏览..选择D:\batCommand.bat

设置每天执行..即可.

备份时的文件名是:数据库名_日期_时间.bak

 
最新经验补充,经过一段时间的备份,会发现日志文件不断增加,原因是除了日志备份,在完整备份模式下,其他备份不会截断日志。
采用的方法:
一、将数据库备份模式更改为简单备份模式,此模式下将不保留日志。(简单但不灵活)
二、进行完全备之后再进行日志备份。

到这里时,大家发现有登录超过时的错误,其实还要设置一个地方,那就是SQL TCP/IP协议

1、开启网络协议
      SQL Server Configuration Manager -> 网络配置 -> 协议

      TCP/IP属性
      保持活动状态 --> 30000
      全部侦听     --> 否
      无延迟       --> 否
      已启用       --> 是
     
        IP地址
      IP地址      --> 数据库服务器IP
      TCP动态端口 --> 不填
      TCP端口     --> 1433
      活动        --> 是
      已启用      --> 是

注意,所做的修改都是得重启SQL服务才会生效,到这里应该差不多了!

如不明白可以加我QQ 279641373

 

 再次回到这里时觉得以上的方法已经老了,其实只要你稍会写程序,用几条语句就可以了,晕