rman backup 수행시에 백업 정보를 보관함으로써 control file이 손상되었을때 유용하다.
catalog db를 만들기위해 디렉터리 생성
`mkdir rcdb'
catalog db 디렉터리에 rman을 이용해 백업셋 받기
backup as compressed backupset format '/home/oracle/rcdb/%U_%T' database include current controlfile;

운영db의 current한 리두로그 그룹에 대해서 아카이브파일을 받고 catalog db 디렉터리에 복사

catalog db를 만들기위한 pfile을 수정
*.compatible='19.0.0'
*.control_files='/home/oracle/rcdb/control01.ctl'#Restore Controlfile
*.db_name='rcdb'
*.log_archive_dest_1='location=/home/oracle/rcdb mandatory'
*.log_archive_format='arch_%t_%s_%r.arc'
*.undo_tablespace='UNDOTBS1'
DB_FILE_NAME_CONVERT=(/u01/app/oracle/oradata/ORA19C/, /home/oracle/rcdb/)
LOG_FILE_NAME_CONVERT=(/u01/app/oracle/oradata/ORA19C/, /home/oracle/rcdb/)
oraenv 환경변수를 catalog db에 맞게 변경

sqlplus에서 catalog db pfile을 이용해 nomount 단계까지 실행

rman을 auxiliary로 실행 후 catalog db 생성
rman auxiliary /
duplicate target database to 'rcdb'
pfile='$ORACLE_HOME/dbs/initrcdb.ora'
nofilenamecheck
skip tablespace example
backup location '/home/oracle/rcdb';
sqlplus로 catalog db 접속

백업정보를 저장할 신규 테이블스페이스 생성
create tablespace rc_tbs datafile '/home/oracle/rcdb/rc_tbs01.dbf' size 10m autoextend on;

create user rc_user
identified by oracle
default tablespace rc_tbs
temporary tablespace temp
quota unlimited on rc_tbs;
recovery_catalog_owner role은 필수다grant connect,resource,recovery_catalog_owner to rc_user;
rc_user로 접속 후 부여받은 role 권한 확인
select * from session_roles;

role이 가지고 있는 system 권한 확인
select * from role_sys_privs;

rman에서 catalog로 접속
rman catalog rc_user/oracle
catalog 생성
create catalog;


tnsping tns;
target db의 rman에도 접속하고 catalog db의 rman에도 접속
rman target / catalog rc_user/oracle@rcdb

target db의 controlfile의 정보들을 catalog db에 등록
register database;

select * from rc_database;
select db_name,tablespace_name, name from rc_datafile;
backup as compressed backupset database;ora19c db 내린다음에 컨트롤파일 삭제로 장애유발
rman을 target db랑 catalog db 같이 접속
rman target / catalog rc_user/oracle@rcdb
db를 nomount 단계까지 올린 후 catalog db에 있는 정보 확인
- 원래라면 백업정보는 controlfile이 가지고 있기 때문에 nomount 단계에서는 확인할 수 없지만 백업정보가 catalog db에도 있기 때문에 조회가 가능하다
list backup;
catalog db에 있는 가장 최근의 백업정보를 가지고 controlfile을 restore 해준다
restore controlfile;
restore 된 controlfile로 mount 단계까지 실행 후 database를 restore, recover 까지 한 후 DB는 RESETLOGS로 OPEN하면 된다.
- 백업정보를 가지고 있는 컨트롤 파일의 복제본
- 컨트롤 파일이 손실되었을 경우 유용하다.- RMAN 스크립트를 저장
catalog db에서 저장되어 있는 스크립트 확인
select * from rc_stored_script;
catalog db에서 저장되어 있는 스크립트 소스 확인
select * from rc_stored_script_line;
rman에서 스크립트 생성
create script incr_0_backup {
backup as compressed backupset incremental level 0 database include current controlfile;
sql 'alter system archive log current'; }

rman에서 스크립트 내용 확인
print script 스크립트이름;

rman에서 스크립트 수행
run {execute script incr_0_backup;}
replace script incr_0_backup {
backup as compressed backupset incremental level 0 database;
sql 'alter system archive log current'; }
delete script incr_0_backup;