오라클 리두 로그 파일 관리

리두로그 파일은 DB에 가해지는 모든 트랜젝션(수정사항)을 시간 순으로 기록하는 파일이다.
1. 리두로그 파일 상태
확인
SQL> select a.group#, a.member, b.bytes, b.status, b.sequence# from
v$logfile a, v$log b where a.group# = b.group# order by
1;
GROUP# MEMBER
BYTES STATUS SEQUENCE#
---------
---------------------------------------- ------------ --------------
----------
1 /data1/ora9i/oradata/DB09/redo01.log
5242880 INACTIVE 18
1 /data2/ora9i/oradata/DB09/redo01.log
5242880 INACTIVE 18
2 /data1/ora9i/oradata/DB09/redo02.log
5242880 CURRENT 19
2 /data2/ora9i/oradata/DB09/redo02.log
5242880 CURRENT 19
3 /data1/ora9i/oradata/DB09/redo03.log
5242880 UNUSED 0
3 /data2/ora9i/oradata/DB09/redo03.log
5242880 UNUSED 0
6 rows selected.
STATUS 의 내용은 다음과 같다.
current : LGRW가 현재 해당
그룹에 로그 정보를 기록중이다.
active : 기록중인 상태는 아니지만 기록된 로그 정보를 해당하는 dirty block이
아직 데이터베이스 버퍼캐시에 남아
있으므로 해당 로그 그룹을 current 에 준해서
관리한다.
inactive : 사용 대기 상태의 그룹으로서 모든 물리적인 관리 작업이 가능하다.
unused :
관리상 inactive 와 물리적으로 동일한 상태로서, 한번도 사용된적이 없는 그룹이다.
* 기본적인 로그의 위치는
$ORACLE_BASE/oradata/$SID/ 디렉토리에 redo01.log 형태로 저장되어 있다.
2. 로그 스위치와
체크포인트
SQL> alter system switch logfile;
SQL> alter system
checkpoint;
로그 스위치는 리두로그 파일을 다음 로그파일로 기록하게 하는 명령어 이다.
이 명령어를 사용하면 기존에
사용중이던 리두로그 파일은 active 상태로 변경된다.
로그 스위치후 active 상태로 변경된 기존 로그파일을 inactive
상태로 변경시키는 것이 체크포인트 명령어이다.
* 참고로 LGWR가 리두로그 버퍼의 리두엔트리를 로그파일에 쓰게 되는 상황 4가지
이다.
1) 트랜잭션이 커밋될때
2) 리두 로그 버퍼가 1/3 이상 채워졌을때
3) 리두 로그 버퍼에서 변경된
레코드의 크기가 1M를 넘기는 경우
4) DBWR가 dirty block 을 데이터 파일에 저장하기 직전
* 체크포인트의
간격을 log_checkpoint_interval 이나 log_checkpoing_timeout 와 같은 직접적인 방법으로 조절했으나
이제는 fast_start_mttr_target 파라미터를 이용해서 간접적으로 관리한다.
(fast_start_mttr_target
파라미터에 설정된 값은 인스턴스 장애시 허용되는 복구 시간을 의미한다.)
3. 리두 로그 그룹의 추가 와 삭제
SQL>
alter database drop logfile group [그룹 넘버];
SQL> alter database add logfle
group [그룹 넘버] ('맴버파일1','맴버파일2',...) size [파일크기];
* 리두 로그 그룹을 삭제 하였을 경우 설정만
삭제되는것이므로, OS 상에서 실질적인 파일 삭제명령어를 따로 해줘야 한다.
* 리두 로그 그룹을 삭제시 active 상태나
currert 상태에서는 삭제가 되지 않는다.
* 리두 로그 그룹 추가시에는 자동적으로 파일이 생성된다.
4. 리두 로그
맴버의 추가 와 삭제
SQL> alter database drop logfile member
'맴버파일1','맴버파일2';
SQL> alter database add logfile member '맴버파일' to group
[그룹넘버];
* 리두 로그 맴버 삭제 하였을 경우 설정만 삭제되는것이므로, OS 상에서 실질적인 파일 삭제명령어를 따로 해줘야
한다.
* 리두 로그 맴버 삭제시 active 상태나 currert 상태에서는 삭제가 되지 않는다.
* 리두 로그 맴버 추가시에는
자동적으로 파일이 생성된다.
'4 Jobs > Oracle' 카테고리의 다른 글
오라클 DB Link 설정 (0) | 2012.05.18 |
---|---|
ORACLE|ORA-02085: database link AAAA connects to BBBB (DB Link 오류) (0) | 2012.05.18 |
ORA-03135 (0) | 2011.11.24 |
DB Link 생성 (0) | 2011.10.13 |