Windows Server系统定时任务备份ORACLE数据库

Windows Server系统定时任务备份ORACLE数据库

一、编辑备份脚本

RMAN备份数据库

1、在备份脚本目录下,创建bat文件db_rman.bat

 set ORACLE_SID=orcl1

D:appadminproduct11.2.0dbhome_1in

rman target /  cmdfile=D:/dbback/db_scripts/db_rman.txt log=D:/dbback/db_scripts/db_%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%.log 

 FORFILES /P D:/dbback/db_scripts /M *.log /D -30 /C "cmd /c del @path"

exit

 2、创建rman备份脚本db_rman.txt文件

sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';

run { 

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

CONFIGURE BACKUP OPTIMIZATION ON;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:/dbback/db_rman/%F.ctl';

backup tag 'dbfull' format 'D:/dbback/db_rman/full%u_%s_%p' database;

sql 'alter system archive log current';

backup archivelog all format 'D:/dbback/db_rman/arc_%T_%U.arg';

 

delete noprompt expired archivelog all;

delete noprompt archivelog all completed before 'sysdate-14';

delete noprompt obsolete;

delete noprompt expired backup;

 

list backup summary;

exit; 

EXPDP备份数据库

在备份脚本目录下编辑定时任务db_expdp.bat

@echo off 

REM ########################################################### 

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

REM # 使用expdb命令导出需要先在数据库中创建备份文件存贮目录

REM ########################################################### 

REM 取当前系统时间,可能因操作系统不同而取值不一样 

set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%

set CURMON=%date:~0,4%%date:~5,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=orcl

set USER=dba

set PASSWORD=manager

REM 创建备份用目录,目录结构为F:expdpbak

 

set FILENAME=%OWNER%_%CURDATE%_%CURTIME%.dmp

set EXPLOG=%OWNER%_%CURDATE%_%CURTIME%.log 

expdp %USER%/%PASSWORD%@%OWNER% DIRECTORY=DUMP_DIR DUMPFILE=%FILENAME% LOGFILE=%EXPLOG%

FORFILES /P F:expdpbak /M *.dmp /D -30 /C "cmd /c del @path"

FORFILES /P F:expdpbak /M *.log /D -30 /C "cmd /c del @path"

exit

 EXP/IMP备份数据库

set filename=d:/db_backup/db_expdp/scott_%date:~0,4%%date:~5,2%%date:~8,2%
exp scott/tiger file=%filename%.dmp log=%filename%.log

FORFILES /P D:db_backupdb_expdp /M *.dmp /D -15 /C "cmd /c del @path"
FORFILES /P D:db_backupdb_expdp /M *.log /D -15 /C "cmd /c del @path"
exit

二、编辑定时任务(RMAN备份数据库)

 

创建任务,输入定时任务名称

 

新建触发器,设置每天23:30:00开始任务

 

新建操作,选定备份定时任务脚本.bat

 

条件选项,默认

 

设置选项,设定任务运行时间超过以下时间,即12小时,停止任务

 

 

 windows下expdp脚本

#FORFILES /P E:ak /M *.dmp /D -2 /C "cmd /c del @path"
#删除E:ak目录下.dmp结尾的3天前的文件


set ORACLE_SID=orcl
set dumpfile=dmp%date:~0,4%%date:~5,2%%date:~8,2%%%U.dmp
set logfile=dmp%date:~0,4%%date:~5,2%%date:~8,2%.log
set syncfile=dmp%date:~0,4%%date:~5,2%%date:~8,2%
set insert_head=insert into BACK_USER.sync_file_list (db_ip,INCREMENTAL_LEVEL,file_name,pwd_name,handle,back_completion_time,sync_status) values('10.86.240.10','0',
e:
cd E:OracleappAdministratorproduct11.2.0dbhome_1BIN
expdp "/ as sysdba" directory=DIRECTORY_NAME dumpfile=%dumpfile% logfile=%logfile% EXCLUDE=STATISTICS parallel=8 compression=all schemas=HIS,CIS filesize=2G
FORFILES /P F:expdpbak /M *.dmp /D -6 /C "cmd /c del @path"
FORFILES /P F:expdpbak /M *.log /D -6 /C "cmd /c del @path"
exit

原文地址:https://www.cnblogs.com/elontian/p/11096024.html