CDC 복제 이후 오라클이 느려졌다? child cursor 폭증이 만든 예상치 못한 문제
101
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

Oracle child cursor 폭증 문제와 해결 경험

이 게시물은 네이버페이 Plasma 프로젝트에서 Oracle DB의 비동기 복제 전환 과정 중 발생한 성능 저하 문제와 그 해결 과정을 다룹니다.

주요 이슈 및 원인 분석

  • 비정상적인 child cursor 폭증으로 인해 라이브러리 캐시 잠금, 뮤텍스 경쟁, 커서 대기 증가 발생
  • VARCHAR 가변 길이, nullable 필드 바인딩, NUMBER 및 TIMESTAMP 타입 자릿수 변동이 주요 원인
  • 특히 칼럼 수가 많은 대형 테이블에서 문제 심화

해결 시도 및 최종 적용 방안

  • pstm.setNull(), pstm.setObject(scale) 적용으로 바인딩 타입 고정 시도
  • 불필요한 UPDATE 대상 필드 축소 및 TIMESTAMP 밀리초 단위 truncate 적용
  • 쿼리 ID를 다르게 인식하도록 주석 추가, 세션 이벤트로 VARCHAR 바인딩 크기 고정 등 다양한 시도 병행
  • 최종적으로 child cursor 수 99.8% 감소 및 쿼리 성능 안정화 달성

마무리

DBA 팀과 긴밀한 협업과 단계적 트래픽 적용을 통해 문제를 조기에 발견하고 해결한 경험을 공유합니다.

연관 게시글