oracle CDB, PDB 백업 받을 당시의 주의점
19c CDB 환경에서 RMAN 백업 스크립트 짜다가 아카이브로그 백업만 계속 안 돼서 한참 삽질함. 원인은 환경변수 하나였음. 겸사겸사 CDB/PDB 백업할 때 주의할 점 같이 정리해 둠.
1. 백업은 CDB$ROOT에서
- 아카이브로그, 컨트롤파일, SPFILE은 CDB 레벨 자원 → root에서만 백업 가능
- PDB에 붙은 RMAN으로는 그 PDB 데이터파일만 다룰 수 있음
- 정기 백업은 무조건 root 접속 기준으로 짜는 게 맞음
2. ORACLE_PDB_SID 환경변수 (직접 겪은 거)
- 증상
rman target /접속은 정상- 근데
LIST ARCHIVELOG ALL결과가 비어 있고BACKUP ARCHIVELOG ALL도 안 됨 - 아카이브로그는 분명히 쌓이고 있는 상태
- 원인 : oracle 계정 프로파일에
ORACLE_PDB_SID가 들어가 있었음
$ env | grep ORACLE ORACLE_SID=ORCLCDB ORACLE_PDB_SID=PDB1
- 18c부터 먹히는 비공식(undocumented) 환경변수
- 로컬 접속하면 해당 PDB로 자동 전환해 줌
- sqlplus 편하게 쓰려고 넣어둔 건데
rman target /도 같이 PDB로 붙어버림
3. PDB에서 BACKUP DATABASE 돌리면 일부만 백업됨
- 에러 없이 정상 종료됨
- 근데 실제로는 그 PDB 하나만 백업됨 (root, seed, 다른 PDB, 아카이브로그 다 빠짐)
- 복구할 때 가서야 알게 되는 케이스라 제일 위험함
4. 그 외
- 새로 만든 PDB는 바로 백업 한 번 받아두기
- 특정 PDB만 받을 때도 root에서
BACKUP PLUGGABLE DATABASE PDB1식으로
5. 확인해 볼 곳
- 환경변수 :
env | grep ORACLE - 프로파일 :
~/.bash_profile,~/.bashrc,/etc/profile.d/쪽 - 접속 컨테이너 : SQL*Plus는
show con_name, RMAN은SELECT sys_context('userenv','con_name') FROM dual; - 백업 범위 :
REPORT SCHEMA,LIST BACKUP SUMMARY로 데이터파일 수 비교 - cron이나 백업 SW에서 도는 스크립트는 환경변수 상속이 달라서 수동이랑 결과가 다를 수 있음 → 스크립트 안에
unset ORACLE_PDB_SID넣어두는 거 추천
결론 : CDB 환경에서 RMAN이 이상하면 지금 어느 컨테이너에 붙어 있는지부터 확인하기.
'NetBackup > Oracle' 카테고리의 다른 글
| OIP multiple MSDP 옵션 때문에 bigfile 백업이 안 쪼개질 때 (0) | 2026.10.20 |
|---|---|
| NetBackup + RMAN RECOVER TABLE로 운영 중인 Oracle DB에서 테이블만 복구하기 (0) | 2026.09.21 |
| Cross-Endian Restore 문제 (0) | 2026.08.11 |
| NetBackup Oracle 다양한 복구 방법 (0) | 2026.08.11 |
| NetBackup 오라클 기본적인 복구 (0) | 2026.08.11 |