피드로 돌아가기
Dev.toDatabase
원문 읽기
System Catalog 기반 의존성 분석을 통한 GBase 8c Schema 변경 리스크 제어
GBase 8c Object Dependency Checks Before Schema Changes
AI 요약
Context
DDL 실행 시 단순 구문 오류보다 View, Trigger, Function 등 의존 객체의 침묵 파손으로 인한 운영 장애 위험 존재. 특히 Table Rewrite로 인한 Disk 사용량 2배 증가 및 서비스 가용성 저하라는 기술적 제약 상황 분석.
Technical Solution
- PG_DEPEND 및 PG_REWRITE 결합을 통한 View 의존성 추적 및 Cascade Risk 사전 식별
- PG_TRIGGER와 PG_PROC 조회를 통한 Trigger-Function 연결 고리 분석 및 영향도 평가
- deptype(n, a, i, p) 분류를 통한 의존성 성격 파악 및 매뉴얼 검토 대상 선정
- Hot Table의 Column Type 변경 시 'New Column 추가 → Batch Backfill → View 업데이트 → Old Column 삭제'로 이어지는 단계적 이관 전략 채택
- DB 객체뿐 아니라 Application SQL 및 ETL Job까지 포함하는 End-to-End 감사 프로세스 수립
실천 포인트
1. DDL 실행 전 PG_DEPEND의 deptype 'n' 항목 전수 조사
2. Table Rewrite 유발 항목(NOT NULL 추가, Type 변경) 확인 시 Disk 공간 2배 확보 여부 검토
3. 고위험 변경 시 원자적 변경 대신 '추가-동기화-교체'의 단계적 전략 적용
4. Dynamic SQL 사용 여부에 따른 Application Code 레벨의 텍스트 검색 병행