ORACLE/ADMIN2012. 10. 12. 15:13
반응형

 

Sizing Redo Log Files

Sizing Redo Log Files

The size of the redo log files can influence performance, because the behavior of the database writer and archiver processes depend on the redo log sizes. Generally, larger redo log files provide better performance. Undersized log files increase checkpoint activity and reduce performance.
리두로그 파일 사이즈는 성능에 영향을 끼칠 수 있다, 왜냐하면 DBWR ARCn프로세스가 리두로그 사이즈에 영향을 받기 때문이다.
일반적으로, 큰 리두로그파일은 보다 나은 성능을 보장한다. 크기가 작은 로그파일은 chekcpint를 증가시키고 성능을 저하시킨다.

Although the size of the redo log files does not affect LGWR performance, it can affect DBWR and checkpoint behavior. Checkpoint frequency is affected by several factors, including log file size and the setting of the FAST_START_MTTR_TARGET initialization parameter. If the FAST_START_MTTR_TARGET parameter is set to limit the instance recovery time, Oracle Database automatically tries to checkpoint as frequently as necessary. Under this condition, the size of the log files should be large enough to avoid additional checkpointing due to under sized log files. The optimal size can be obtained by querying the OPTIMAL_LOGFILE_SIZE column from the V$INSTANCE_RECOVERY view. You can also obtain sizing advice on the Redo Log Groups page of Oracle Enterprise Manager.
비록 리두로그 파일 크기가 LGWR 프로세스의 성능에 영향을 주지는 않지만, DBWR 프로세스와 checkpoint에는 영향을 준다.
checkpoint 빈도는 리두로그파일 크기를 포함하여 FAST_START_MTTR_TARGET 파라미터등에 영향을 받는다.
만약 FAST_START_MTTR_TARGET 파라미터가 인스턴스 복구시간의 제한값으로 설정되면, 오라클 데이터베이스가
자동적으로 필요한 만큼의 checkpoint 빈도를 조절한다. 이 상황 하에서는, 리두로그 파일 사이즈는 작은 크기때문에
추가적인 checkpoint가 일어나는걸 방지하기 위해 충분히 크게 설정되어야 한다. 가장 최적의 사이즈에 대한 값은
V$INSTANCE_RECOVERY 뷰의 OPTIMAL_LOGFILE_SIZE 컬럼에서 확인이 가능하다. 또한 OEM의 Redo Log Group으로
부터도 확인 가능하다.

It may not always be possible to provide a specific size recommendation for redo log files, but redo log files in the range of 100 MB to a few gigabytes are considered reasonable. Size online redo log files according to the amount of redo your system generates. A rough guide is to switch log files at most once every 20 minutes.
리두로그 파일의 크기를 정확히 정하기는 힘들지만, 100MB에서 몇GB 까지가 합당하다. 리두로그 파일의 크기는 시스템이
생성하는 리두의 양에 따라 조절해야 한다. 대략 20분에 1번정도로 설정하면 된다.


[[리두로그 리사이징]]
*. REDO LOG group은 3개 이상 권장, member는 2개 권장
(member는 물리적으로 서로 다른 위치에 분산 권장)
*. 평상시 REDO LOG 스위치가 약 20분 이상 유지할 수 있는 Size 권장
(alert_TESTDB.log에서 지속적으로 모니터링해서 필요시 REDO LOG 크기를 증가시킬 것)
*. 체크포인트 간격 조절(initTESTDB.ora파라미터에서) fast_start_mttr_target = 600

*. DB Startup 상태에서 작업 가능

1. sqlplus 접속(Internal로 접속)
$> sqlplus '/ as sysdba'
OR
$> sqlplus system/manager

2. currunt REDO LOG 조회
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 43 104857600 2 YES INACTIVE 8485439 01-SEP-03
2 1 44 104857600 2 YES INACTIVE 8585874 02-SEP-03
3 1 45 104857600 2 NO CURRENT 8756665 03-SEP-03
STATUS가 Inactive인 경우만 작업 가능

3. REDO LOG file을 switch
SQL> alter system switch logfile;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 46 104857600 2 NO CURRENT 8988801 03-SEP-03
2 1 44 104857600 2 YES INACTIVE 8585874 02-SEP-03
3 1 45 104857600 2 YES ACTIVE 8756665 03-SEP-03
SQL> alter system switch logfile;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 46 104857600 2 YES ACTIVE 8988801 03-SEP-03
2 1 47 104857600 2 NO CURRENT 8990631 03-SEP-03
3 1 45 104857600 2 YES INACTIVE 8756665 03-SEP-03

4. acitive 한 REDO LOG group을 inactive로 변경
SQL> alter system checkpoint;

5. REDO LOG Drop
SQL> alter database drop logfile group 2;
6. REDO LOG logfile 삭제
SQL> !rm /oradata1/redo2a.dbf;
SQL> !rm /oradata2/redo2b.dbf;

7. REDO LOG logfile 추가
1) 멤버가 없는 경우
SQL> alter database add logfile group 2 '/oradata/redo2.dbf' size 100M;
2) 멤버가 있는 경우
SQL> alter database add logfile member '/oradata/redo2b.dbf' to group 2;
SQL> alter database add logfile
group 2 ('/oradata1/redo2a','/oradata2/redo2b') size 100M reuse;
3) 여러개의 REDO LOG 추가할 경우
SQL> alter database add logfile
group 4 ('/oradata1/redo4a','/oradata2/redo4b') size 100M,
group 5 ('/oradata1/redo5a','/oradata2/redo5b') size 100M,
group 6 ('/oradata1/redo6a','/oradata2/redo6b') size 100M;

[출처] DBMS관리 - 리두로그(REDO LOG) Resize 방법|작성자 smileDBA

반응형
Posted by [PineTree]