自动压缩备份数据库
来源:互联网 发布:伊辛模型知乎 编辑:程序博客网 时间:2024/05/23 18:07
自动备份数据库,相信大家都很清楚,我们可以利用SQL Server的作业来完成,然而我们需要备份的数据库文件较大,这时我们可能会想到利用xp_makecab来压缩,然后使用DEL命令删除已经压缩过的文件。示例如下:
/*
备份数据库,用于作业中,分三步1、备份指定库、压缩指定文件、删除指定文件
*/
--第一步备份指定库
DECLARE @path varchar(100) --声名备份路径
SELECT @path = 'E:/BackData/HCMS'+ convert(varchar(30),getdate(),12) + ltrim(str(DATEPART (hh, getdate())))
backup database HCMS to disk=@path with init --备份
--第二步压缩指定文件(注此压缩对大于2G的文件会失败)
DECLARE @path varchar(100)
DECLARE @command varchar(200)
--备份数据库
SELECT @path = 'E:/BackData/HCMS'+ convert(varchar(30),getdate(),12) + ltrim(str(DATEPART (hh, getdate())))
SELECT @command = @path+'.cab'
exec master.dbo.xp_makecab @command,mszip,1,@path
GO
--第三步删除指定的文件
DECLARE @command varchar(200)
SELECT @command = 'DEL ' + 'E:/BackData/HCMS'+ convert(varchar(30),getdate(),12) + ltrim(str(DATEPART (hh, getdate())))
EXEC master.dbo.xp_cmdshell @command, NO_OUTPUT
然而随着时间的流逝,数据库文件越来越大,忽然有一天发送压缩失败,原来xp_makecab命令不能压缩超过2G的文件,所以导致上面的第二步就会失败,怎么办呢?我们可利用压缩工具Rar和Windows任务计划来实现。
我们可以建一个bat文件, bat文件内容如下:(此示例仅演示压缩示例,大家可根据需要参照RAR命令帮助自行更改)
@echo off
echo.
echo.
color a
cls
@echo off
echo.
echo 欢迎来到数据库备份压缩批处理
echo.
echo.
echo.
echo. ....正在自动压缩备份数据....
echo ------------------------------------------------------------------------------
echo.
echo.
echo.
echo.
echo.
@echo off
if not exist E:/Temp/HCMS%date:~0,4%%date:~5,2%%date:~8,2%1830.bak goto existfile --检查是否存在未被压缩数据库备份文件
goto backup
:backup
echo 已经找到备份好的备份文件HCMS%date:~0,4%%date:~5,2%%date:~8,2%1830.bak
echo .
echo !!!提示:正在压缩备份文件....!!!
echo .
echo !!!提示:正在将备份文件HCMS%date:~0,4%%date:~5,2%%date:~8,2%1830.bak压缩到G:/Cabfiles/HCMS%date:~0,4%%date:~5,2%%date:~8,2%2000.RAR文件中....... --只是显示屏幕而已,中间的文件名没实际用处
"C:/Program Files"/WinRAR/winrar.exe a -as -ibck E:/HCMS.rar -m3 -agyyyymmddhhmmss E:/Temp/HCMS%date:~0,4%%date:~5,2%%date:~8,2%1830.bak --如不知道什么意思,WINRAR命令行的参数参考一下。
goto end
:existfile
echo.
echo !!!备份失败!!!
echo 没有找到已经备份好的备份文件HCMS%date:~0,4%%date:~5,2%%date:~8,2%1830.bak
echo.
echo.
echo.
pause
goto end
:end
echo 操作完毕
更多资料请查看http://download.csdn.net/source/2813346
- 自动压缩备份数据库
- 自动备份压缩数据库--Global.asax
- MYSQL数据库自动压缩备份脚本
- Oracle数据库自动备份压缩bat
- Linux oracle数据库自动备份自动压缩脚本代码
- linux下自动备份数据库并压缩的脚本
- 如何让SQL Server数据库自动备份并压缩
- BAT自动 备份数据库 压缩成RAR格式
- Linux自动备份压缩MySQL数据库的实用方法
- 数据库压缩备份|还原
- Linux定时压缩备份Mysql数据库并自动删除之前备份数据
- 备份数据库日志压缩数据库
- Winrar自动压缩备份作业
- SqlServer自动备份、自动压缩、自动删除旧备份
- 自动备份Oracle数据库
- 自动备份Oracle 数据库
- 自动备份Oracle数据库
- 自动备份数据库
- 关于拿分的事
- [转]MSSQL、MYSQL,ACCESSl,Oracle随机读取N条记录方法
- C#中使用DirectSound录音
- nginx.org
- C#中的枚举
- 自动压缩备份数据库
- VC防止窗口和控件闪烁的方法
- Shared Libraries
- 首都航空停止与腾讯业务合作 号召抵制腾讯(转)
- Android学习笔记---Layout的一些理解
- 全球最强的30个创意网站
- 我的思想斗争
- 用数字来看某知名B2C网站的发展内幕和隐私
- Linux使用:(冒号)来分隔路径 冒号命令