More

오라클 ORA-30036: 세그먼트를 8만큼 실행 취소 테이블스페이스 'UNDO_T1'에서 확장할 수 없음

ORA-30036

오라클에서 테이블 데이터 삭제 중 발생한 오류 메시지 입니다. (ORA-30036: unable to extend segment by 8 in undo)

ORA-30036: 세그먼트를 8만큼 실행 취소 테이블스페이스 'UNDO_T1'에서 확장할 수 없음

단순 몇 건 데이터 삭제는 아니고 대량의 데이터 삭제를 여러 번 실행하면서 발생 했습니다. 

한번에 삭제 하는 데이터 건수가 최소 10만 건 이상 이었습니다.


1. ORA-30036 발생 원인

쿼리의 실행 데이터의 양이 UNDO 테이블스페이스를 초과해서 발생했습니다. 첫 몇 번의 실행은 10만 건 정도에서 시작했는데 이후 삭제 건은 40만 건이 넘어가면서 UNDO 테이블스페이스를 초과 했던 모양입니다.



2. ORA-30036 피해 가기

일시적인 연속 데이터 삭제로 인해 발생했던 문제기 때문에 UNDO 테이블스페이스 자동 확장이나 용량 증가는 하지 않았습니다.

그대신 DELETE를 한번 날리고 COMMIT 하고 다시 DELETE를 날리고 COMMIT 하는 방식으로 피해갈 수 있었습니다. COMMIT을 하지 않고 DELETE문을 연속으로 날려 쌓인 데이터가 너무 많은 게 원인이었습니다.