어제밤에 개발자가 올래걸리는 작업이 있어서 돌리고 퇴근 했다


다음날 출근해서 와보니 잘못된 조건으로 잘못된 DML이 아직도 안끝낫다.. 개발자는 아무렇지 않게 X버튼을 눌러 프로그램을 껏다. 어떤 상황이 발생할까.?


그 테이블의 Rollback이 이뤄 지면서 작업 시간 만큼 Lock 현상으로 그 테이블의 서비스는 불가 하다..


아래 세팅을 미리 해놓으면 이때 복구 시간을 빠르게 할 수 있다.


_CLEANUP_ROLLBACK_ENTRIES 한번에 rollback 하는 count (V$TRANSACTION.USED_UREC) 결정합니다.


#순서

1. 현재값은 아래 query 확인합니다.

select a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
from x$ksppi a, x$ksppcv b, x$ksppsv c
where a.indx = b.indx and a.indx = c.indx
and a.ksppinm like '%_cleanup_rollback%'
/


2. '_cleanup_rollback_entries'
원하는 숫자로 하시고 fast_start_parallel_rollback=false 변경 DB restartup 하세요.

(
경험상 _cleanup_rollback_entries = 몇만 까지 사용해봤습니다
.)


<근거>
Note 414242.1 - Database Hangs Because SMON is taking 100% CPU doing transaction recovery
Note 1060831.6 - Rollback Is Taking A Long Time After Session Killed



#추가 참고 

1. _cleanup_rollback_entries' 너무 크게하는 경우 rollback 부하로 다른 작업 영향 받을 있음.


2. RAC
이라도 한쪽 instance 에만 적용 가능함.

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 사이버몰의 이용약관 바로가기

+ Recent posts