C/C++教程

oracle+blat+winrar自动备份数据库并进行压缩后发送到指定邮箱

本文主要是介绍oracle+blat+winrar自动备份数据库并进行压缩后发送到指定邮箱,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

工具:ORACLE + BLAT + WINRAR

目的:自动备份服务器上数据库并将数据库备份文件发送到指定邮箱,也是异地备份的一种形式

过程:

使用windows计划任务调用写好的bat文件执行备份、压缩和发送邮件

配置:

目录sback结构:

./sback

./sback/blat

./sback/WinRAR

./sback/dmp

./sback/zip

./sback/auto.bat

./sback/blat.log

./sback/exp.log

./sback/mailbody.txt

 

建立bat文件供windows计划任务调用,以下为auto.bat的内容

@echo off
set droot=C:\sback

cd %droot%

set var_date=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set var_date=%date:~0,4%%date:~5,2%%date:~8,2%

exp dbusername/userpassword@127.0.0.1/orcl file="%droot%\dmp\dbusername_%var_date%.dmp" log=".\exp.log" OWNER=('dbusername')

.\WinRAR\WinRAR.exe a .\zip\dbusername_%var_date%.zip .\dmp\dbusername_%var_date%.dmp

@echo off
:::::::::::::: params ::::::::::::::
set from=发送的邮箱,比如:mailuser@domain.com
set user=邮箱登录名,如mailuser
set pass=邮箱密码
set to=发送到什么邮箱,如使用多个邮箱可用逗号分隔,如:maila@domain.com,mainb@domain.com
set subj=邮件标题,如:dbusername_%var_date%
set mail=发送的邮件内容的txt文件,如:.\mailbody.txt
set attach=要发送的附件存放的位置,如:.\zip\dbusername_%var_date%.zip
set server=发送邮件的smtp服务器地址,如:smtp.qq.com
set debug=-debug -log blat.log -timestamp
::::::::::::::::: run blat :::::::::::::::::
.\blat3222\blat %mail% -to %to% -base64 -charset UTF-8 -subject %subj% -attach %attach% -server %server% -f %from% -u %user% -pw %pass% %debug%

在windows计划任务中添加任务调用执行这个bat文件即可,执行成功后会在dmp文件夹内生成oracle的备份文件,在zip文件夹中生成dmp文件对应的压缩文件,同时在blat.log日志文件中记录邮件发送日志

本操作用到了第三方工具,如:blat和WinRAR,其中WinRAR也可用其他压缩工具替代,如windows自带的压缩makecab或者7z等代替

windows压缩

makecab ./dmp/dbusername_%var_date%.dmp ./zip/dbusername_%var_date%.zip

windows解压缩

expand ./zip/dbusername_%var_date%.zip ./dmp/dbusername_%var_date%.dmp

 

7z压缩

7z a ./zip/dbusername_%var_date%.zip ./dmp/dbusername_%var_date%.dmp

 

这个操作也可用于文件备份、其他类型数据库备份。

这篇关于oracle+blat+winrar自动备份数据库并进行压缩后发送到指定邮箱的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!