工具: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
这个操作也可用于文件备份、其他类型数据库备份。