Oracle 데이터베이스에서 파티션 테이블을 관리하다 보면 일부 파티션을 삭제(drop)하거나 테이블의 일부만 삭제한 후 시스템적으로 처리가 완료되지 않는 상황이 발생할 수 있습니다. 이처럼 파티션 또는 서브 오브젝트의 부분 삭제 상태(partial drop)를 추적하고 분석하는 데 유용한 뷰가 바로 ALL_PARTIAL_DROP_TABS입니다. 본 글에서는 ALL_PARTIAL_DROP_TABS 뷰가 제공하는 정보와 그 활용 사례, 관련 뷰와의 비교, 실무에서 꼭 알아야 할 포인트를 정리하여 제공합니다.
1. ALL_PARTIAL_DROP_TABS란?
ALL_PARTIAL_DROP_TABS는 오라클 데이터베이스에서 사용자가 접근 가능한 테이블 중 일부 오브젝트(예: 파티션 또는 서브파티션)가 삭제 도중에 있는 상태의 정보를 보여주는 데이터 딕셔너리 뷰입니다. 즉, 테이블 전체는 여전히 존재하지만 내부 일부 구조가 완전히 드롭되지 않았거나, 시스템에서 GC(garbage collection) 처리를 기다리는 상태를 나타냅니다.
1-1. 뷰 사용 목적
- 파티션 삭제 후 정리가 되지 않은 테이블의 상태 추적
- 트러블슈팅 시 “object does not exist” 오류의 원인 파악
- Data Pump export/import 수행 중 삭제 처리 중단 여부 확인
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| OWNER | 테이블 소유자 |
| TABLE_NAME | 해당 테이블 이름 |
| TAB_TYPE | 테이블 유형 (예: TABLE, PARTITIONED TABLE) |
| DROPPED_TIMESTAMP | 부분 삭제가 수행된 시점 |
| DROPPED_OBJ_NAME | 삭제 대상 오브젝트 이름 (파티션명 등) |
3. 실무 활용 예시
파티션 삭제 이후 시스템에서 해당 파티션 오브젝트를 물리적으로 제거하지 못해, 트러블이 발생하는 경우 다음과 같이 이 뷰를 통해 확인이 가능합니다.
SELECT *
FROM ALL_PARTIAL_DROP_TABS
WHERE OWNER = 'SALES' AND TABLE_NAME = 'SALES_DATA';
이 쿼리는 SALES.SALES_DATA 테이블의 삭제 처리 중인 파티션 또는 내부 오브젝트 정보를 조회합니다.
4. 관련 뷰와의 비교
| 뷰 이름 | 설명 | 주요 활용 |
|---|---|---|
| ALL_PARTIAL_DROP_TABS | 부분 삭제 상태의 테이블 정보 제공 | 파티션 드롭 상태 추적 및 트러블슈팅 |
| DBA_TAB_PARTITIONS | 파티션 테이블의 모든 파티션 메타데이터 | 파티션 존재 유무 및 상태 확인 |
| DBA_OBJECTS | 전체 오브젝트 상태와 속성 | 삭제 여부, 생성 시점 등 메타 조회 |
| DBA_RECYCLEBIN | 논리적으로 삭제된 오브젝트 목록 | 오브젝트 복구 여부 확인 |
5. 실전 사례 분석
사례 1: 파티션 드롭 후 export 오류 발생
운영 환경에서 대용량 파티션 테이블 중 일부 파티션을 삭제한 후 expdp를 수행했으나 다음과 같은 오류가 발생했습니다:
ORA-31693: Table data object "SALES"."SALES_DATA" failed to load/unload and is being skipped due to error:
ORA-08103: object no longer exists
ALL_PARTIAL_DROP_TABS를 조회한 결과, 해당 파티션이 물리적으로 완전히 삭제되지 않은 상태였으며, 내부적으로 GC 처리가 지연되고 있었던 것으로 확인되었습니다. 이 후 DBA는 DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL 등의 유틸리티로 관련 정보를 강제로 정리하였습니다.
6. 관리 및 성능 팁
- 정기적으로
ALL_PARTIAL_DROP_TABS를 모니터링하여 불완전 삭제 테이블 발생 여부 점검 - 파티션 드롭 후
DBMS_METADATA또는DBA_TAB_PARTITIONS와 연계하여 완전성 검증 - 오류 발생 시 리사이클빈(RECYCLEBIN)과도 연계해보는 것이 좋음
7. 결론
ALL_PARTIAL_DROP_TABS 뷰는 일반적인 운영 환경에서는 잘 드러나지 않지만, 대용량 파티션 테이블 관리, 자동화된 파티션 삭제, 비정상 종료 등 특수 상황에서 데이터 무결성 및 시스템 안정성 확보에 매우 유용한 도구입니다. SQL 튜닝이나 export/import 오류 원인 분석, 또는 테이블스페이스 정리 시 반드시 체크해야 할 시스템 뷰 중 하나로, DBA 또는 데이터 아키텍트에게 실질적인 가치를 제공하는 정보입니다.
8. 참고 자료
- Oracle® Database Reference 19c – ALL_PARTIAL_DROP_TABS View
- Oracle® Database Administrator's Guide
- Oracle Support Doc ID 1550334.1 – Issues with Dropped Partitions Not Fully Removed
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] ALL_PART_HISTOGRAMS 뷰 완전 정복 (0) | 2025.06.26 |
|---|---|
| [ORACLE] ALL_PART_COL_STATISTICS 뷰 완전 해석 : 파티션 컬럼 통계를 활용한 SQL 성능 최적화 (0) | 2025.06.26 |
| [ORACLE] ALL_OPBINDINGS 뷰 완벽 가이드 : 바인드 변수 추적의 핵심 (0) | 2025.06.26 |
| [ORACLE] ALL_OPERATORS 뷰 완전 해부 : SQL 실행에 사용되는 연산자 정보 파악 (0) | 2025.06.25 |
| [ORACLE] ALL_OPARGUMENTS 뷰 완전 정복 : PL/SQL 매개변수 분석의 핵심 (0) | 2025.06.25 |