oracle备份恢复批处理文件

方法一:

结合任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动导出ORACLE备份文件,大大方便了ORACLE数据备份。:
1、建立批处理文件backup.bat\.

@echo off
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
将生成oracle2006-01-09.dmp文件

@echo off
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环
2、添加一个任务计划
利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行d:\oracle\backup.bat
3、以后每天将在目录中生成形如“oracle2015-08-31.dmp和oracle2015-08-31.log”的备份和日志文件。
说明:
1、%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
2、如需要准确的时间做为文件名,请用%time%函数,参数同上。

3、@echo off 表示其之后的命令不在命令提示符窗口显示出来。

方法二:

@echo off
set filename=e:\data_bak\%date:~8,2%日
exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.dmp
del %filename%.log
放计划任务里面定时执行,文件名以日期的day部分来命名,备份后调用rar进行压缩,因为覆盖了每个月重复的日期的备份,所以可以保存一个月的历史数据。如果需要保存所有备份,文件名上应有完整年月日。
注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下,如果是以星期命名,则需要将set filename=e:\data_bak\%date:~8,2%日修改为set filename=e:\data_bak\%date:~0,3%。compress=y为压缩命令,但用处不大,因为后面用rar压缩率很高。

方法三

以下为ORACLE 自动备份批处理文件内容,请配合任务计划实现 

@ECHO OFF
SET BACKPATH=d:\ 
ECHO 准备备份数据库
REM 7天一个循环 
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN 
ECHO E > %BACKPATH%\ONE

:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK 
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK 
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK 
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK 
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK 
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK 
:BACK
EXP TESTUSER/TEST FILE=%BACKPATH_FULL%.DMP 
SET BACKPATH=
SET BACKPATH_FULL= 
EXIT

方法四:

在文本里编辑cmd命令。然后保存成bat文件。在windows中定义任务计划,就
可以自动执行了。
例:

   编辑文本文件

   @echo off
   del c:\exp\*.dmp
   exp userid=cw/cw@db file='c:\exp\*.dmp' tables=(student)
保存成bat文件

建议使用方法二,方法三没用过,方法四太简单。

以上根据各位大神文章整理得出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值