데이터베이스 FULL 백업
다음의 스크립트는 로컬에 설치된 데이터베이스에 접속하여 /BACKUP/DATA 위치에 FULL 백업을 수행한다."FullBackup.sh"
OUSER=oracle
TS=`date +"%m.%d-%H:%M"`
su - $OUSER << EOF
rman log=/BACKUP/log/rman_FULL_$TS.log <<EOF1
connect target /
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt obsolete;
run{
allocate channel t1 type DISK;
SET MAXCORRUPT FOR DATAFILE 3 to 3;
BACKUP format "/BACKUP/RMAN/FULL_%d_%U" INCREMENTAL LEVEL 0 DATABASE filesperset 4;
sql "alter database backup controlfile to ''/BACKUP/RMAN/controlfile_full_backup'' reuse";
sql "alter system archive log current";
backup format "/BACKUP/RMAN/IRDS_%s.arc.rman"
archivelog all delete all input;
release channel t1;
}
EOF1
EOF
데이터베이스 아키이브 백업
다음의 스크립트는 로컬에 설치된 데이터베이스에 접속하여 /BACKUP/DATA 위치에 아카이브 백업을 수행한다."DailyBackup.sh"
OUSER=oracle
TS=`date +"%m.%d-%H:%M"`
su - $OUSER << EOF
rman log=/BACKUP/log/rman_INC_$TS.log <<EOF1
connect target /
crosscheck archivelog all;
delete noprompt expired archivelog all;
run{
allocate channel t1 type DISK;
SET MAXCORRUPT FOR DATAFILE 3 to 3;
BACKUP format "/BACKUP/RMAN/INC_%d_%U" INCREMENTAL LEVEL 1 DATABASE filesperset 4;
sql "alter database backup controlfile to ''/BACKUP/RMAN/controlfile_inc_backup'' reuse";
sql "alter system archive log current";
backup format "/BACKUP/RMAN/DATABASE_%s.arc.rman"
archivelog all delete all input;
release channel t1;
}
EOF1
EOF
참고로 RMAN 은 catalog 을 이용하는 방법과 target database 의 controlfile 을 이용한 방법이 있으나 오라클에서는 catalog 를 이용하는 방법을 강력히 권고한다.