RMAN Backup on Windows

  1. Full backup
REM 需要修改的变量值开始
set ORACLE_SID=xpxyy
set BACKUP_PATH=E:\RMAN
set SYS_PASSWD=oracle
REM 修改变量结束

REM 在服务器上保留3个备份的脚本
if exist %BACKUP_PATH%\*.BAK003 del /F /Q %BACKUP_PATH%\*.BAK003
if exist %BACKUP_PATH%\*.BAK002 rename %BACKUP_PATH%\*.BAK002 *.BAK003
if exist %BACKUP_PATH%\*.BAK001 rename %BACKUP_PATH%\*.BAK001 *.BAK002

REM 在服务器上保留2个备份的脚本
REM if exist %BACKUP_PATH%\*.BAK002 del /F /Q %BACKUP_PATH%\*.BAK002
REM if exist %BACKUP_PATH%\*.BAK001 rename %BACKUP_PATH%\*.BAK *.BAK002

REM 在服务器上保留1个备份的脚本
REM if exist %BACKUP_PATH%\*.BAK001 del /F /Q %BACKUP_PATH%\*.BAK001

rman target sys/%SYS_PASSWD% nocatalog cmdfile full.sql log full_log.txt
"full.sql"
run{
allocate channel ch1 type disk;
backup
format = 'K:\Rman\DB_Full_%U.BAK'
database;
copy current controlfile to 'K:\Rman\control.bak';
release channel ch1;
}
  1. Incremental backup
REM 需要修改的变量值开始
set ORACLE_SID=xpxyy
set BACKUP_PATH=E:\RMAN
set SYS_PASSWD=oracle
REM 修改变量结束

REM 在服务器上保留3个备份的脚本
if exist %BACKUP_PATH%\*.BAK003 del /F /Q %BACKUP_PATH%\*.BAK003
if exist %BACKUP_PATH%\*.BAK002 rename %BACKUP_PATH%\*.BAK002 *.BAK003
if exist %BACKUP_PATH%\*.BAK001 rename %BACKUP_PATH%\*.BAK001 *.BAK002

REM 在服务器上保留2个备份的脚本
REM if exist %BACKUP_PATH%\*.BAK002 del /F /Q %BACKUP_PATH%\*.BAK002
REM if exist %BACKUP_PATH%\*.BAK001 rename %BACKUP_PATH%\*.BAK *.BAK002

REM 在服务器上保留1个备份的脚本
REM if exist %BACKUP_PATH%\*.BAK001 del /F /Q %BACKUP_PATH%\*.BAK001

rman target sys/%SYS_PASSWD% nocatalog cmdfile incremental.sql log incremental_log.txt
"incremental.sql"
run{
allocate channel ch01 type disk;
backup incremental level 1
format = 'K:\Rman\DB_Incr_%U.BAK001'
database;
release channel ch1;
}