SQL Server Express数据库自动备份

hx9617 03-19 75

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


     具体步骤如下:

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

----------------------------------------------

GO 

DECLARE 

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

DECLARE 

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

SELECT

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

SELECT @fileName='d:\backup\SQL_'+@backupTime+'.bak'

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

-----------------------------------------------------

说明:

1、在D盘建文件夹 d:\backup,如果是自己专用的服务器,C盘足够大,也可以在C:\windows 下建一个Backup文件夹,更安全。

2、可以把备份文件名字中的 SQL 替换成【数据库的名字】

3、备份文件名的扩展名.bak 可以改成 .dll  这样当感染勒索病毒时,被加密的概率要小一些。

4、最后一行的数据库名字要改成数据库的实际名字。  



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


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

sqlcmd -S ".\express" -U "sa" -P "your_password" -i "D:\backup\sqlbak.sql"


解释:

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

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

3、如果是sql2008及以前版本,可以有osql 代替前面的sqlcmd  在sql2008以后版本不支持 osql了。

4、参数说明:

         -S:指定连接的 SQL Server 实例。

         -I:指定输入的脚本文件路径,要求文件扩展名通常为 .sql

         -U:用户名

         -P:密码

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


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



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

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

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

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



四、上面的sqlbak.bat文件中是有数据库密码的,为了数据库密码的安全,可以把设置好了的bat文件用 bat转exe工具(比如Quick Batch File Compiler)转成exe格式的文件。同时把bat文件采用加密码压缩的方式保存,这样别人就不会通过查看Bat找到你的数据库密码了。


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

计划任务设置步骤:

1、控制面板→右上角(小图标)→管理工具→任务计划程序

SQL Server Express数据库自动备份

2、新建基本任务

SQL Server Express数据库自动备份

3、输入任务名字

SQL Server Express数据库自动备份

4、设为每天执行

SQL Server Express数据库自动备份

5、设置执行时间

SQL Server Express数据库自动备份

6、设置具本操作

SQL Server Express数据库自动备份

7、通过 浏览,选择先前创建的 sqlbak.bat文件

SQL Server Express数据库自动备份

8、点完成,这样自动备份的计划任务就执行好了。

SQL Server Express数据库自动备份

9、自动删除的计划任务的创建步骤和上面的一样。只是选择启动程序时,要选择不同的程序。

SQL Server Express数据库自动备份

10、创建完成后,就是这样的了。


SQL Server Express数据库自动备份



The End
微信