Step1 先在服务器上备份 Rman_backuptxt: export ORACLE_HOME ORACLE_BASE=/u01/oracle export ORACLE_BASE ORACLE_SID=dbsid export ORACLE_SID $ORACLE_HOME/bin/rman nocatalog target system/password
楼主:供参考
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。
建议一(做周备份并压缩为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 ccense/ccense FILE=%BACKPATH_FULL%DMP
RAR a %BACKPATH_FULL%rar %BACKPATH_FULL%DMP
DEL %BACKPATH_FULL%DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
说明:
文件名以星期来命名
备份后调用rar进行压缩
这样可以保存一个星期的历史数据
注意:需要把program files/winrar目录下的rarexe拷贝到系统system32目录下
建议二:
1,批处理文件backupbat\
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-09dmp文件
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个备份文件循环 $date$日期参数可灵活运用。
@echo off
echo ================================================
echo Windows环境下Oracle数据库的自动备份脚本
echo 1 使用当前日期命名备份文件。
echo 2 自动删除7天前的备份。
echo ================================================
::以“YYYYMMDD”格式取出当前时间。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
::设置用户名、密码和要备份的数据库。
set USER=xxx
set PASSWORD=123456
set DATABASE=dbtest
::创建备份目录。
if not exist "D:\backup\data" mkdir D:\backup\data
if not exist "D:\backup\log" mkdir D:\backup\log
set DATADIR=D:\backup\data
set LOGDIR=D:\backup\log
exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%BACKUPDATE%dmp log=%LOGDIR%\log_%BACKUPDATE%log
::删除7天前的备份。
forfiles /p "%DATADIR%" /s /m /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m /d -7 /c "cmd /c del @path"
exit
可以通过exp方式进行备份:
1、编写备份脚本保存为bat文件:
exp 用户名/密码@数据库 own=用户名 file="e:\oracleback\datadmp" BUFFER=64000 log=e:\oracleback\data_%date:~0,10%_PMlog
forfiles /p "E:\oracleback" /s /m /d -4 /c "cmd /c del @path"
rd e:\recycled\ /s/q
2、windows带的计划任务里添加计划执行该bat文件
以上就是关于怎么设置oracle数据库的自动备份和删除过期备份全部的内容,包括:怎么设置oracle数据库的自动备份和删除过期备份、oracle数据库如何每天自动执行脚本完成正式数据库到备份数据库的备份、如何编写一个windows下的oracle自动备份脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)