Site icon DBA의 정석

Log File Sync 이벤트 이슈 정리

Oracle Wait Event를 보다 보면 log file sync 이벤트가 많이 발생 합니다. 대표적인 경우가 몇 개 있습니다.

 

1.  Redo Log File Size를 증가시킴으로 Log Switch 수치 감소

     -> I/O 감소로 성능에 이점

 

2. SYS.AUDSES$ 시퀀스의 CACHE 값을 크게 조정하여 해결

->  동시 접속 과다 시점에 Log File Sync 대기이벤트에 의한 Active Session의 급증 현상 발생 하는 경우

SYS.AUDSES$ 시퀀스의 CACHE Size가 작아서 SYS.SEQ$ 를 UPDATE하는 내부 SQL 수행 및

COMMIT 과다 발생으로 인한 지연 발생

SQL> alter sequence sys.audses$ cache 10000;

 

3. REDO Log 파일은 데이터 파일이나 TEMP 파일, SYSTEM 파일과 다른 디스크에 배치하여 I/O 분산

 

4. O/S I/O 관련 Parameter 수정

maxreqs (12288->24576)

maxservers (32->64) (kproc = maxservers*cpu count)

 

5. COMMIT_WRITE 명령에 의해 Redo Buffer를 Redo Log File에 기록하는 방식을 사용자가 제어  (10gR2부터 제공)

대기여부           WAIT               기존의 Commit과 같이 Redo Buffer가 Redo Log File에 기록을 완료 할 때 까지 Session은 대기함

NOWAIT           Redo Buffer가 Redo Log File에 기록이 완료 시 까지 대기하지 않고 다른 작업을 수행할 수 있음

대기여부          IMMEDIATE       Redo Log File에 쓰기 작업을 바로 바로 수행함

BATCH             Redo Log File에 쓰기 작업을 Batch 형태로 몰아서 수행함

 

EX) SQL> alter system set commit_write=NOWAIT, BATCH

 

6. Redo Buffer의 크기가 지나치게 큰 경우에 log file sync 대기 증가 발생 가능

Redo Buffer의 크기가 지나치게 큰 경우 Commit을 수행할 때, LGWR 프로세스는 더 많은 양의 Redo Entry를 디스크에 기록해야 하므로 sync write 시간은 더 오래 소요.

log buffer space가 증가할 경우 Redo Buffer의 크기를 증가시키고 log file sync 대기가 증가 할 경우  Redo Buffer의 크기를 감소시켜야 한다.

따라서 Redo Buffer의 크기가 적절한 크기가 되어야 하지만 적정 값은 정해져 있지 않으면 지속적인 모니터링을 통해서 조정 해야 합니다.

Exit mobile version