SQL Server Express数据库自动备份
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、控制面板→右上角(小图标)→管理工具→任务计划程序
2、新建基本任务
3、输入任务名字
4、设为每天执行
5、设置执行时间
6、设置具本操作
7、通过 浏览,选择先前创建的 sqlbak.bat文件
8、点完成,这样自动备份的计划任务就执行好了。
9、自动删除的计划任务的创建步骤和上面的一样。只是选择启动程序时,要选择不同的程序。
10、创建完成后,就是这样的了。
还没有评论,来说两句吧...