最近由于换了新的工作,公司用了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 -> 网络配置 -> 协议
保持活动状态 --> 30000
全部侦听 --> 否
无延迟 --> 否
已启用 --> 是
IP地址 --> 数据库服务器IP
TCP动态端口 --> 不填
TCP端口 --> 1433
活动 --> 是
已启用 --> 是
注意,所做的修改都是得重启SQL服务才会生效,到这里应该差不多了!
如不明白可以加我QQ 279641373
再次回到这里时觉得以上的方法已经老了,其实只要你稍会写程序,用几条语句就可以了,晕
转载于:https://blog.51cto.com/andy110/314866