CROSSCHECK와 VALIDATE
RMAN 기록과 실제 백업 파일을 맞추는 CROSSCHECK, 사라진 백업 기록을 지우는 DELETE EXPIRED, 블록 손상과 복원 가능 여부를 점검하는 VALIDATE, 주기적 정리 순서
#핵심 요약
CROSSCHECK는 RMAN 저장소의 백업 기록을 실제 파일 상태와 맞춤
파일이 없으면 상태를 EXPIRED로 바꾸며, 파일이나 기록을 지우지는 않음
DELETE EXPIRED는 EXPIRED 백업의 기록을 저장소에서 지움
EXPIRED로 표시된 파일이 실제로 있으면 경고함
OBSOLETE는 파일은 있지만 보존 정책상 필요 없다는 뜻이고, DELETE OBSOLETE는 파일과 기록을 모두 지움
BACKUP VALIDATE는 백업 파일을 만들지 않고 데이터 파일의 손상 블록을 점검하고, RESTORE ... VALIDATE는 실제로 복원하지 않고 지금 있는 백업으로 복원할 수 있는지 점검함
#개념과 동작 원리
CROSSCHECK는 논리적 백업 기록을 백업 저장소의 물리적 실제와 맞춤
AVAILABLE에서 EXPIRED로 바꾸는 것은 그 파일의 데이터베이스에 TARGET으로 접속했을 때만 됨
CROSSCHECK는 운영체제 파일도 저장소 기록도 지우지 않음
지우려면 DELETE를 씀
DELETE로 지운 파일은 백업 매체에서 지워지고, Recovery Catalog에서 지워지며, 컨트롤 파일에는 DELETED로 표시됨
| 상태 | 뜻 | 정리 명령 |
|---|---|---|
| AVAILABLE | 파일이 있음 | |
| EXPIRED | 기록은 있는데 파일이 없음 | DELETE EXPIRED(기록 삭제) |
| UNAVAILABLE | 사용 불가로 표시함 | |
| OBSOLETE | 파일은 있지만 보존 정책상 필요 없음 | DELETE OBSOLETE(파일과 기록 삭제) |
CROSSCHECK를 사용하는 경우: 운영체제에서 백업 파일을 실수로 지우거나 옮겼을 때, 스토리지나 NFS 문제로 경로가 바뀌었을 때, DELETE EXPIRED 전, 복원 전에 필요한 백업이 실제로 있는지 볼 때, 주기적 정리 작업
#필수 명령어 또는 SQL
#백업 조각이 사라진 상황
BACKUP DATABASE FORMAT '<BACKUP_DIR>/db_%U';
LIST BACKUP OF DATAFILE <FILE_NO>;결과 해석:
실습에서는 위에서 확인한 조각 파일을 운영체제에서 지웠음
그 뒤에도 LIST BACKUP은 AVAILABLE로 보였음
RMAN은 삭제 사실을 모르므로, CROSSCHECK를 하지 않으면 복구 중에야 오류가 남
CROSSCHECK BACKUP;
LIST EXPIRED BACKUP;결과 해석:
실습 기록: crosschecked backup piece: found to be 'EXPIRED'가 나왔음
DELETE EXPIRED BACKUP;결과 해석:
실습 기록: 정리 뒤 LIST EXPIRED BACKUP은 specification does not match any backup in the repository였음
#아카이브 로그가 사라진 상황
CROSSCHECK ARCHIVELOG ALL;
LIST EXPIRED ARCHIVELOG ALL;DELETE EXPIRED ARCHIVELOG ALL;결과 해석:
설명: LIST EXPIRED;처럼 대상을 빼면 RMAN-01009 문법 오류가 남
아카이브 로그 자체는 CROSSCHECK ARCHIVELOG ALL, 아카이브 로그의 백업본은 CROSSCHECK BACKUP OF ARCHIVELOG ALL로 확인함
#주기적 정리
RUN {
CROSSCHECK BACKUP;
CROSSCHECK COPY;
CROSSCHECK ARCHIVELOG ALL;
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT EXPIRED COPY;
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
DELETE NOPROMPT OBSOLETE;
}결과 해석:
실습의 권장 순서는 CROSSCHECK, DELETE EXPIRED, REPORT OBSOLETE, DELETE OBSOLETE임NOPROMPT는 확인 질문 없이 지움
위 블록은 REPORT OBSOLETE 확인 없이 바로 지움
#손상과 복원 가능 여부 점검
BACKUP VALIDATE DATABASE;
RESTORE DATABASE VALIDATE;결과 해석:
설명: 첫 명령은 백업 파일을 만들지 않고 데이터 파일의 손상 블록을 점검함(결과의 Blocks Failing 확인)
둘째 명령은 실제로 복원하지 않고 지금 가진 백업으로 복원할 수 있는지 점검함
#사용 조건과 주의사항
DELETE OBSOLETE가 포함된 정리 블록은 실제 백업 파일을 지움
자동화하기 전에 보존 정책을 확인함(백업 보존과 정리)