Windows Server 2003下Oracle数据库自动备份批处理脚本

来源:互联网 发布:cad软件怎么下载 编辑:程序博客网 时间:2024/05/07 10:09

@echo off

REM ###########################################################
REM # Windows Server 2003下Oracle数据库自动备份批处理脚本
REM ###########################################################

REM 取当前系统时间,可能因操作系统不同而取值不一样
set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
set CURTIME=%time:~0,2%

REM 小时数如果小于10,则在前面补0
if "%CURTIME%"==" 0" set CURTIME=00
if "%CURTIME%"==" 1" set CURTIME=01
if "%CURTIME%"==" 2" set CURTIME=02
if "%CURTIME%"==" 3" set CURTIME=03
if "%CURTIME%"==" 4" set CURTIME=04
if "%CURTIME%"==" 5" set CURTIME=05
if "%CURTIME%"==" 6" set CURTIME=06
if "%CURTIME%"==" 7" set CURTIME=07
if "%CURTIME%"==" 8" set CURTIME=08
if "%CURTIME%"==" 9" set CURTIME=09

set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%

REM 设置所有者、用户名和密码
set OWNER=test

set USER=test

set PASSWORD=test
set PREFIX=test

REM 创建备份用目录,目录结构为backup/YYYYMMDD/
if not exist "tempdbbak"     mkdir tempdbbak
REM 创建永久保存的文件夹,用来保存每周星期五的数据库备份
if not exist "persdbbak"     mkdir persdbbak

set CURDIR=%CURDATE%
set FILENAME=%CURDIR%%PREFIX%_%CURDATE%_%CURTIME%.DMP
set EXPLOG=%CURDIR%%PREFIX%_%CURDATE%_%CURTIME%_log.log

REM 调用ORACLE的exp命令导出用户数据
CD tempdbbak
exp %USER%/%PASSWORD%@test file=%FILENAME% log=%EXPLOG% owner=%OWNER% grants=n

REM 把每个礼拜礼拜星期五的数据库备份,永久保存到E:/persdbbak文件夹中
if %date:~-3%==星期五 copy %CURDIR%%PREFIX%_%CURDATE%_%CURTIME%.DMP E:/persdbbak /y
REM 到每个礼拜星期五就删除前几天数据库的备份,以防止电脑保存的数据库的备份过多,过大   
if %date:~-3%==星期五 rd E:/tempdbbak /s /q
exit

原创粉丝点击