操作步骤:
1、环境变量设置:
1)右键点我的电脑(计算机)—>高级系统设置—>环境变量—>系统变量—>变量path—>编辑-->添加路径
2)保存原环境变量:
C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;E:\app\administrator\product\11.2.0\dbhome_1\bin;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
3)新添加2个路径后的环境变量:
C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;E:\app\administrator\product\11.2.0\dbhome_1\bin;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;E:\app\administrator\product\11.2.0\dbhome_1\BIN;C:\Program
Files (x86)\WinRAR
2、备份目录设置
1) 在WINDOWS系统F盘符创建ORA_DB_BACKUP目录。
2)create directory ORA_BACKUP_DIR as
'F:\ORA_DB_BACKUP';
3、权限设置
1)grant dba to system;
注意:这里system原本就拥有此权限,不用执行
2)grant read,write on directory ORA_BACKUP_DIR
to system;
注意:这里在创建备份目录的时候,系统自动添加了读写执行的权限,不用执行
正常情况新用户需要授权。
4、脚本代码
F:
cd \ORA_DB_BACKUP\
expdp system/***** directory=ORA_BACKUP_DIR dumpfile=ORA_BACKUP%date:~0,10%.dmp
log=ORA_LOG%date:~0,10%.log full=y
rar a ORA_LOG%date:~0,10%.rar ORA_LOG%date:~0,10%.log
rar a ORA_BACKUP%date:~0,10%.rar ORA_BACKUP%date:~0,10%.dmp
del ORA_LOG%date:~0,10%.log /q
del ORA_BACKUP%date:~0,10%.dmp /q
Forfiles -p F:\ORA_DB_BACKUP\ -s -m *.rar -d
-7 -c "Cmd /C del @FILE"
注意:这里的时间格式不能是2015/06/08 这种格式,会被数据库默认为路径,需修改时间格式。
代码详解:
第一行F:代表进入备份目录所在盘符
第二行进入备份目录
第三行ORACLE逻辑导出命令expdp,system/*****是账号密码,directory是ORACLE备份目录名称,%date:~0,10%表示取当前系统时间前10位,full=y表示全备
第四、五行WINRAR压缩软件压缩打包命令
第六、七行删除原备份文件(因为前面2步已经压缩打包了)
第八行删除备份目录中7天以前的以.rar格式结尾的文件
5、计划任务
系统开始菜单(WIN)—>控制面板—>管理工具—>任务计划程序
如下图:
注意:
1、在BAT脚本中的时间变量可能会因为操作系统的时间格式问题导致脚本无法执行,需要更改操作系统的时间格式为2016-01-01这种。
2、在启动脚本时最好添加起始目录路径
3、FORFILES指定删除目录时,有时会遇到指定的目录添加了双引号就无法执行的问题,可去掉指定目录双引号。
遇到以下报错就是这种情况:
错误: 无效参数/选项 - '@FILE'。
键入 "FORFILES /?" 以了解用法。