"Rman 테이블스페이스 복구"의 두 판 사이의 차이
DB CAFE
(→= TEST1, TEST2 테이블 스페이스를 제외하고 복원/복구) |
|||
84번째 줄: | 84번째 줄: | ||
SELECT * FROM V$DATABASE | SELECT * FROM V$DATABASE | ||
</source> | </source> | ||
+ | [[category:oracle]] |
2023년 8월 17일 (목) 01:04 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 rman 테이블 스페이스 백업/복구[편집]
1.1 rman 테이블 스페이스 백업[편집]
1.1.1 특정 테이블 스페이스 제외하고 백업[편집]
- 매일 새벽 진행되는 백업 데이터가 너무 커서 불필요한 데이터는 제외하고 백업할경우
- 특정 테이블 스페이스를 제외하고 백업 하기
- CONFIGURE 설정시 EXCLUDE FOR TABLESPACE 구문 추가
RMAN> run{
...
CONFIGURE EXCLUDE FOR TABLESPACE 'TESTDATA1';
CONFIGURE EXCLUDE FOR TABLESPACE 'TESTDATA2';
...
BACKUP AS COMPRESSED BACKUPSET database PLUS ARCHIVELOG;
...
}
- [주의할 사항]
- 특정 테이블 스페이스를 제외하고 백업 하면 복구할때 주의해야 한다.
- 기존에 있던 데이터를 제외하고 백업 했기 때문에 복구할 때도 동일한 옵션을 주어야 한다.
- skip tablespace 옵션을 주지 않으면, 백업 데이터 내에 일부 테이블 스페이스의 데이터가 없기 때문에 datafile의 유실로 판단하고 복구 자체가 되지 않는다.
- 제외하고 백업시 복구하기가 번거로워 진다.!!!
1.1.2 테이블 스페이스 제외 백업 해제[편집]
- 제외 해제 (설정 되돌리기)
RMAN> CONFIGURE EXCLUDE FOR TABLESPACE TESTDATA1 CLEAR;
- 일시적으로 제외 해제 (제외하지 않고 백업)
RMAN> BACKUP DATABASE NOEXCLUDE;
1.2 rman 테이블 스페이스 복구[편집]
1.2.1 특정 테이블 스페이스 제외하고 복구[편집]
- 특정 테이블스페이스를 제외하고 백업한 경우, 일부 데이터를 제외하고 백업 했기 때문에 복구할 때도 동일한 옵션을 주어야함.
- 동일한 옵션 없이 복구를 시도한다면, 백업본에 존재하지 않는 데이터를 찾기 때문에 다음과 같은 오류가 발생한다.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 14/09/2022 09:25:19
RMAN-06094: datafile 1 must be restored
- recover database 구문에 skip tablespace 옵션을 주어 특정 테이블 스페이스를 제외하고 복구
- 이때, 새로운 DB에 복구하는 경우 UNDO, SYSTEM, SYSAUX 테이블 스페이스는 필수적으로 복구되어야 함.
1.2.2 = TEST1, TEST2 테이블 스페이스를 제외하고 복원/복구[편집]
- TEST1, TEST2 테이블 스페이스를 제외하고 복원(restore)
restore database skip tablespace 'TEST1','TEST2';
- 복원할 때 준 옵션을 복구(recover)할 때도 동일하게 주어야 한다.
recover database skip tablespace 'TEST1','TEST2';
1.2.2.1 run 스크립트[편집]
- run 스크립트로 실행하고자 한다면, run 스크립트를 실행하기 전에 DB는 shutdown 된 상태여야 한다.
- nomount 일때만 controlfile restore 가능
run{
set dbid=1234567890
startup nomount
restore controlfile from '/backup/rman/db_ctl_c-1234567890-20000101-01';
alter database mount;
set until time="to_date('2000-01-01 01:00:00','yyyy-mm-dd hh24:mi:ss')";
restore database skip tablespace 'TEST1','TEST2';
recover database skip tablespace 'TEST1','TEST2';
alter database open resetlogs;
}
- @dbid는 RMAN 백업을 받은 DB에서 DBID 조회
SELECT * FROM V$DATABASE