上一篇日志中,我将windows下的备份流程分成了五步走。本日志就结合上篇的理论来个实例。该实例是来自于我现网的中的一个备份示例(不要想着弄我密码啊,内容改过的,呵呵)。费话少说,直接上脚本:

 1@eche off
 2//下面一部分是设置变量部分
 3set exp_path=D:oracleproduct10.2.0db_1BIN
 4set data_path=E:ora_exptest
 5set o_sid=test
 6rem set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
 7set user_name=abc
 8//格式化备份输出为年月日时格式
 9if "%time:~0,1%"==" " (set backup_file=%db_name%-%date:~0,4%%date:~5,2%%date:~8,2%-0%time:~1,1%) else (set backup_file=%db_name%-%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%)
10%exp_path%exp %user_name%/"""abc@sg"""@%o_sid% file=%data_path%%backup_file%.dmp log=%data_path%%backup_file%.log
11cd /d %data_path%
12//压缩备份文件并删除原文件
13"C:Program FilesWinRARrar.exe" a %backup_file%.rar %backup_file%.dmp >>%data_path%%backup_file%.log
14del /Q %backup_file%.dmp
15//备份周期循环
16forfiles /m /d -15  "cmd /c del @file" >del.log
17//email通知提示
18sendEmail.exe -f test@abc.com -t postmaster@361way.com  -s mail.abc.com -u oracle_bak -xu nagios -xp test@nagios  -m "192.168.1.12  oracle-test-db-bak" -a %data_path%%backup_file%.log del.log

将上面的脚本写好后,可以通过schtasks命令添加到计划任务中。

 1@echo off
 2rem 请制定bat文件的绝对路径
 3set bat_path=E:ora_exp
 4rem 新建存放dmp的目录
 5mkdir E:ora_exptest
 6mkdir E:ora_exp361way
 7//从00:50分开始,每小时做一次备份
 8rem schtasks test_exp
 9SCHTASKS /Delete /TN "test_exp"  /F
10schtasks /create /sc hourly /st 00:50 /mo 1 /tn "test_exp" /tr %bat_path%test_exp.bat
11//每周做一次备份
12rem schtasks 361way_exp
13SCHTASKS /Delete /TN "361way_exp"  /F
14schtasks /create /sc daily /mo 7 /st 05:00 /tn "361way_exp" /tr %bat_path%361way_exp.bat

schtasks命令的详细用法可以参看百度百科。当然如面感觉命令不直观,也可以通过控制面板——计划任务——新增计划任务来添加任务。

最后再提供一个批处理加密的工具。点我下载