Oracle

[Oracle] RMAN

bbugge 2019. 11. 20. 17:18

RMAN으로 대상 DB를 접속한 후에 수행
예시 > rman target / catalog sys/manager@<target hostname 또는 ip>

# tablespace backup
RMAN> run {
allocate channel c1 type disk;
backup
tag tbs_<테이블스페이스명>
format '<경로>/tbs_<테이블스페이스명>_t%t_s%s'
(tablepsace <테이블스페이스명>);
release channel c1;
}

# tablespace 백업 확인
RMAN> list backupset of tablepsace users;

# tablespace 복구
RMAN> run {
allocate channel c1 type disk;
sql "alter tablespace users offline immediate";
restore tablespace users;
recover tablespace users;
sql "alter tablespace users online";
release channel c1;
}

# tablespace 새로운 경로에 복구
RMAN> run {
sql "alter tablespace users offline immediate";
set newname for datafile '<기존경로>/<기존파일명>' to '<바꿀경로>/<바꿀파일명>';
restore tablespace users;
switch datafile all;
recover tablespace users;
sql "alter tablespace users online";
}


# Database Full Backup level 0 ( 전체 데이터베이스 백업 )
RMAN> run {
allocate channel c1 type disk;
backup
incremental level 0
filesperset 4
format '<경로>/<파일명>_level0_%t'
(datebase)
release channel c1;
}

# Database 백업 확인
RMAN> list backup of database;

# Control file, redo log를 포함한 전체 백업
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '<경로>/<파일명>_%U';
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '<경로>/%F';
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> show all;
RMAN> backup as compressed backupset database spfile plus archivelog delete input;

# 불완전 복구 Control file과 Data file 유실 시
# database nomount 상태에서 실행
# <시퀀스번호>와 <스레드번호>는 redolog 파일에서 확인
RMAN> run {
set untill sequence=<시퀀스번호> thread=<스레드번호>;
restore controlfile;
alter database mount;
restore database;
recover database;
alter database open resetlogs;
}

# 불완전 복구 현재 redolog 유실 시
# <시퀀스번호>를 alertlog에서 확인
RMAN> run {
set untill sequence=<시퀀스번호> thread=<스레드번호>;
restore database;
recover database;
alter database open resetlogs;
}