求一份oracle自动备份脚本

1.window下
2.每个月一号0点备份一次就行

新建一个文件,保存.bat批处理
if "%time:~0,1%"==" " (set backup_file=%date:~0,10%-0%time:~1,1%) else (set backup_file=%date:~0,10%-%time:~0,2%)
exp apps/pwd@192.168.1.206/orcl file=%backup_file%.dmp log=%backup_file%.log owner=(apps)
rar a %backup_file%.rar *.dmp *.log
del *.dmp
del *.log

需要配置环境变量:
PATH
C:\Program Files\WinRAR

计划任务可行不

1.新建个bat批处理文件,里面内容是备份脚本,很简单的 (ps:具体怎么写,自己网上找,现在的人直接给人要代码太不好了)

2.在window系统中建个计划任务,指定某个时间点启动运行该bat批处理文件即可

直接删除一年之前的数据也不是个好做法的。通常采用的方法是通过一个Schedule Job (Yearly)去archive若干年前的数据(备份到文件中或者刻录到DVD),之后才做DB中数据的物理删除。

把这个批处理加入到计划任务里面就OK了!

自动删除一年之前的数据,这个可以写个过程 或函数都行,做到ORACLE的JOB里就行了!

  1. 通过dos命令备份oracle,你肯定会吧
  2. 从网上找一个获取当前时间的dos命令,提取出月日YY_DD
  3. 指定目录下(如D:\bak),有没有文件叫做YY_DD_xxx.dmp?有则删除
  4. 备份,文件名为 YY_DD_xxx.dmp
  5. 试运行(2次以上)
  6. 添加windows计划

bak.bat文件

@echo off

set fileName=%date:~5,2%_%date:~8,2%_XXX.dmp

echo 删除上年%fileName%备份
del D:\bak\%fileName%

echo 开始备份本年%fileName%备份

exp system/manager file=D:\bak\%fileName% owner=system

echo 结束