今天需要在一个老的Windows2003上进行一个oracle10G的备份脚本的编写。
ip1为安装了10G数据库的Windows2003系统(D:dbbackup为数据库备份目录),ip2为没有安装的正常的Windows2003系统(d:dbbackup2为数据库备份目录),先在安装了oracle的机器上进行备份,写一个BAT脚本,内容如下:
@echo off echo 正在备份Oracle数据库,请稍等...... set mydate=%DATE:~0,10% //2016-1-6 日期格式 exp user/mima@orc full=y file=D:\dbbackup\orc_%mydate%.dmp buffer=655350000 log=d:\dbbackup\orc_%mydate%.log //不解释很简单 forfiles /p "D:\dbbackup" /s /m *.* /d -7 /c "cmd /c del @path" //删除7天以前的文件 echo 任务完成!
把上面的bat加入计划任务就行了
我把ip2的一个目录共享给了ip1映射成X盘,把ip1备份的数据库文件复制一份到ip2上进行备份,双备份目的。
脚本如下
@echo off echo 正在复制数据库,请稍等...... set mydate=%DATE:~0,10% copy d:\dbbackup\orc_%mydate%.dmp \\192.168.1.2\dbbackup2 copy d:\dbbackup\orc_%mydate%.log \\192.168.1.2\dbbackup2 //这里不能直接写映射的X盘因为写了Windows2003计划任务不会执行的,必须写网络URC地址 echo 任务完成!
之后我在IP2上加了一个任务删除7天的备份,我在ip1上加了不执行,只好用这种方法了,在本机上删除
脚本如下:
@echo off echo 正在删除7天前Oracle数据库,请稍等...... forfiles /p "D:\dbbackup2" /s /m *.* /d -7 /c "cmd /c del @path" echo 任务完成!
使用windows控制台的copy命令达到修改文件创建时间的目的可以用来测试forfiles脚本的成功运行,方法如下:
1. 修改系统时间为你需要的修改到的目标时间;
2. 运行命令:copy 文件名+,,(注意是连续两个英文逗号).
原文地址:http://shaonian.blog.51cto.com/2975261/1731914