1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| (1) Windows bat脚本
@echo off
color 0a
cd /d %~dp0
set ORACLE_SID=db
set ORACLE_HOME=D:\App\Oracle\product\11.2.0\dbhome_2
if "%time:~0,1%"==" " set "time=0%time:~1%"
set "BACKUP_DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%time:~0,2%"
set "BACKUP_TIME=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% %time:~0,8%"
set "BACKUP_DAY=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%"
set "SCRIPT_PATH=D:/App/Oracle/script"
set "SOURCE_PATH=D:/App/Oracle/rman"
set "BACKUP_PATH=%SOURCE_PATH%/%BACKUP_DAY%"
set "LOG_PATH=%SOURCE_PATH%/log"
if not exist "%BACKUP_PATH%" md "%BACKUP_PATH%" if not exist "%LOG_PATH%" md "%LOG_PATH%"
rman target / nocatalog cmdfile=%SCRIPT_PATH%/backup_script.rman log=%LOG_PATH%/rman_%ORACLE_SID%_full_%BACKUP_DATE%.log using '%BACKUP_PATH%' '%BACKUP_DATE%'
rem ftp上传备份文件到远程备份服务器
cd /d %SOURCE_PATH% Echo open 192.168.1.97>ftp.up Echo risbak>>ftp.up Echo 0791k5Bka>>ftp.up Echo cd 192.168.1.51>>ftp.up Echo binary >>ftp.up Echo cd rman >>ftp.up Echo mput *%BACKUP_DAY%*>>ftp.up Echo bye >>ftp.up
ftp -is:ftp.up del %SOURCE_PATH%\ftp.up /q
(2) backup_script.rman脚本内容
run{ crosscheck archivelog all; crosscheck backup; crosscheck copy; allocate channel d1 type disk; allocate channel d2 type disk; sql 'alter system archive log current'; crosscheck archivelog all; backup as compressed backupset database format '&1/Full_%d-%U-&2-%I-%s'; backup current controlfile format '&1/Ctl-%d-%U-&2-%I'; backup spfile format '&1/Spfile-%d-%U-&2-%I'; sql 'alter system archive log current'; backup as compressed backupset archivelog all format '&1/Arc_%d-%U-&2-%I-%e'; crosscheck archivelog all; crosscheck backup; crosscheck copy; release channel d1; release channel d2; } allocate channel for maintenance device type disk; report obsolete; crosscheck copy; crosscheck backup of archivelog all ; crosscheck archivelog all; delete noprompt obsolete; crosscheck backup; delete noprompt expired backup; delete noprompt archivelog until time 'sysdate - 7'; list backup summary; release channel; exit;
|