sql express自动备份任务

1.查看SQL 版本:

select @@VERSION

 --可以看到 Express Edition 精简免费版

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)   Jun 28 2012 08:36:30   Copyright (c) Microsoft Corporation  Express Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)

2. sqlserver 2008 r2 express版本是不带自动备份功能的, 所以需要手动写sql脚本, 和给系统添加计划任务来执行

3. 在需要存放备份的分区下创建目录, 比如D:\databackup. 将该脚本命名为 JFSuQian.sql , 然后放到D:\databackup下, 下面是脚本内容:

--print ‘开始备份苏家数据库‘

GO 

DECLARE 

@backupTime VARCHAR(20)  --备份时间

DECLARE 

扫描二维码关注公众号,回复: 5199743 查看本文章

@fileName VARCHAR(1000)    --备份路径

SELECT

@backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ‘:‘, ‘‘)) 

SELECT @fileName=‘D:\databackup\JFSuQian_‘+@backupTime+‘.bak‘

backup database 数据库名字 to disk=@fileName

--print ‘开始备份苏家数据库‘

4. 创建bat文件,在桌面任意建立一个txt的文本文件, 输入下面的内容, 然后将该txt的文本文件, 更改为JFSuQian.bat, 也放到D:\databackup目录下

cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn 

sqlcmd -S . -i D:\databackup\JPKFSuQian.sql

解释:

第一行: 是你的SqlServer的安装路径

 第二行: 需要执行的sql脚本路径, 就是我们前面写的那个备份脚本

5. 创建删除备份的bat文件, 跟第四步一样, 在桌面任意建立一个txt文本文件, 输入以下内容, 然后将该txt文件, 更名为del_4_bak.bat, 也放到D:\databackup

forfiles /p C:\SqlDataBack\JPKF_DATA_BACKUP /m *.bak /d -4 /c "cmd /c del /f @path"

  解释: /p   在该路径下搜索要操作的文件

          /m    搜索掩码. 默认匹配所有

          /d    使用日期条件过滤文件. 默认操作为+. 默认单位为 天

          /c    所要执行的cmd命令,必须使用””引起来,  它的默认命令是 "cmd /c echo @file"[返回文件名而已]

6. 至此准备工作已完成, 接下来创建计划任务, 定期每天执行

控制面板→右上角(小图标)→管理工具→任务计划程序(下图), 后面的不再叙述:


SqlServer 2008 r2 express的自动备份实现

2013年02月25日 22:03:3212174人阅读 评论(4) 收藏 举报

 分类:

SQL server(2) 

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhutulang/article/details/8611262

            在一个项目中用到的数据库是sqlserver 2008 r2 express 。可没想到express版本的功能有些限制,此前一直都不知道啊。百度百科可以看到它的限制:

“1.数据库的大小限制:SQL Server 2005 Express 和SQL Server 2008 Express 数据库的大小限制最大为 4GB,最新版本的SQL Server 2008 R2 Express 数据库的大小限制最大为 10G。这个大小的限制只有在数据文件上,交易记录档则不受此限。 2.只能使用一个 CPU 来运算,这在多个 CPU 的电脑上会造成浪费。

3.可使用的存储器量最高只有 1GB。

4.没有 SQL Agent,若要做调度服务必须自己写程序。”

所以,由于没有SQL代理(SQLSERVERAGENT)服务,就没有办法通过新建作业的方式来做数据库备份了。如果不想重装数据库的话可以试试以下方法。思路如下:

1、写一个sql 脚本来作数据库备份。

例如:backup.sql ,我们把它放在 F:\Database_Backup下,以后的备份文件也放在这个目录下。

[sql] view plain copy

GO   

DECLARE   

@backupTime VARCHAR(20)  

DECLARE   

@fileName VARCHAR(1000)    

SELECT  

 @backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', ''))    

SELECT  

 @fileName='F:\Database_Backup\DB_'+@backupTime+'.bak'  

backup database DBName to disk=@fileName  

DBName就是你的数据库的名称了,备份的文件名形如 DB_201302252140.bak。

2、写一个批处理文件,执行此sql脚本。

例如:backup_database.bat ,我们也把它放在 F:\Database_Backup下。

[plain] view plain copy

sqlcmd -S . -i F:\Database_Backup\backup.sql  

3、新建一个Windows计划任务,定期(比如每天)执行此批处理命令。

选择管理工具里的“计划任务”

选择“创建基本任务”

输入任务名称和描述

选择执行时间

选择操作为“启动程序”

这里的程序或脚本就选择我们建好的 backup_database.bat

          最后确定即可。

      至于删除过期的备份文件,我们也可以通过任务计划来完成。forfiles命令,可以实现批量删除文件,用法可以自行百度。我们写一个批处理文件delete_bakFile.bat,内容如下:

[plain] view plain copy

forfiles /p F:\Database_Backup /m *.bak /d -7 /c "cmd /c del /f @path"  

          在这里,我们删除7天以前的备份,同样地新建一个任务计划,将它执行的程序指向这个bat 即可,执行时间可以指定为一个月一次或一周一次等。

猜你喜欢

转载自blog.csdn.net/weixin_34357267/article/details/87230827
今日推荐