怎么设置oracle数据库的自动备份和删除过期备份

怎么设置oracle数据库的自动备份和删除过期备份,第1张

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自动备份脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10158756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存