본문 바로가기

빅데이터과정/OWI

#42_140811_OWI_REDO LOG BUFFER

728x90

# REDO LOG BUFFER






Redo log buffer에 관한 대기 이벤트

log buffer space
log file sync








Redol buffer 내용을 Redo logfile에 기록하는 시점

매 3초마다

log buffer의 1/3 또는 1MB 가 저장될 때

user process가 commit또는 rollback으로 transaction을 종료할 때 (log force as commit)

DBWR process에 의해 신호를 받을 때(Write ahead logging)




Redo log 관련한 튜닝방법 처리

1.    log buffer의 사이즈를 늘린다

2.    commit을 너무 적게 사용 하도록 프로그래밍한다

3.    storage를 빠른 스토리지로 구성한다










LOG BUFFER SPACE



Log buffer space 대기 이벤트가 발생하는 시점은?






log buffer space 대기 이벤트를 해결하는 방법
1.    log buffer 사이즈 크기를 증가시킨다
2.    SQL 작성할 때 Redo 발생량을 최소화 할 수 있도록 작성
예 :
create index emp_job on emp(job) nologging;
nologging - redo가 생성안되도록 하는 option
예 :
insert /*+ append */ into emp789 nologging
select * from emp;





log buffer space 대기 이벤트(ADDM Report)

SQL> exec dbms_workload_repository.create_snapshot;
SQL> @?/rdbms/admin/addmrpt.sql
SQL> @exec

오렌지에서 log buffer space 이벤트가 발생하는 것을 확인할 수 있다

Action
      Increase the size of the redo log buffer by setting the value of
      parameter "log_buffer" to 13 M.
Rationale
      The value of parameter "log_buffer" was "5898240" during the analysis
      period.
Redo log buffer는 자동조절되는 메모리 영역에 해당되지 않는다
SQL> alter system set log_buffer = 20m scope=spfile;
위처럼 byte단위이기 때문에 20m으로 하면 안되고 20*1024*1024로 해줘야 한다
만약 그렇게 안하면 instance가 안올라온다














log file sync 대기 이벤트의 원인과 해결방법






log file sync 대기 이벤트 해결방법

Commit 회수의 감소

Redo Log 쓰기 속도 개선
: RAID5 보다는 RAID1+0 사용
: Raw Device 사용





오라클 data를 담을 storage 3가지

1.    file system (내장형외장형 하드)
예 : create table ts01 datafile ‘/home/oracle/ts01.dbf’ size 20m
관리가 편하다
손상이 잘된다

2.    raw device (CD)
예 : create tablespace ts01 datafile ‘/dev/raw/raw1’ size 20m;
관리가 불편하다
쓰가 속도가 빠르다

3.    ASM(automatic storage management)





Log file sync 대기 이벤트

SQL> connect owi/owi
SQL> exec dbms_workload_repository.create_snapshot;
SQL> create table emp708
     (empno number(10),
     ename varchar2(20));
SQL> begin
for I in 1 .. 200000 loop
       insert into emp708 values(i,'scott'||i);
       COMMIT;
END LOOP;
END;
/
session monitoring 해도 실제로는 log file sync가 잘 안보인다



'빅데이터과정 > OWI' 카테고리의 다른 글

#43_140812_RAC_PARAMETER  (0) 2014.08.12
#44_140811_OWI_LOCK  (0) 2014.08.11
#41_140808_OWI_I/O EVENT  (0) 2014.08.08
#41_140808_OWI_DB BUFFER CACHE  (0) 2014.08.08
#40_140807_OWI_ROW CACHE LOCK  (0) 2014.08.07