FAQ
ERR-11118 The update log size '?????' is bigger than TRX_UPDATE_MAX_LOGSIZE | |||||
Classification | 에러메시지 | Create Date | 2015-03-09 | Hit | 3603 |
< 원인 > update 수행 시 생성된 redo log 크기가 TRX_UPDATE_MAX_LOGSIZE 프로퍼티 설정값을 초과할 경우 발생. update 수행 시 생성되는 redo log 크기는 해당 레코드 크기보다 훨씬 클 수 있음. < 해결 > 1. 에러 발생을 해결하기 위해 다음 명령어를 이용하여 프로퍼티 설정값 조정 가능. alter session set TRX_UPDATE_MAX_LOGSIZE = 20480000; 2. update문에 limit절을 이용하여 update 건수를 줄여서 반복 수행으로 update 수행. 예를 들어 update 대상 레코드 건수가 10만건일 때 limit 10000 구문을 이용하여 10회 반복 수행. * 2번 해결방안을 권장 < 참고 > 1. TRX_UPDATE_MAX_LOGSIZE 값을 크게 설정할 경우, MVCC 기법에 의해 old version image 저장을 위해 메모리 사용량이 증가할 수 있음. 2. update가 완료될 때까지 mem_gc가 밀릴 수 있음. 3. TRX_UPDATE_MAX_LOGSIZE 값을 LOCK_ESCALATION_MEMORY_SIZE 값보다 크게 설정할 경우, update 수행 중 lock escalation이 발생할 수 있음. lock escalation은 IX LOCK이 X LOCK으로 전환되고 X LOCK으로 전환되면 select도 안되기 때문에 모든 서비스가 wait 상태에 빠질 수 있음. 따라서 가급적 TRX_UPDATE_MAX_LOGSIZE 값을 늘리기보다는 update 건수를 줄여서 update 수행을 권장함. |