======================
OnLine Redo Log(1) ======================
1. Online Redo Log 계획
- Oracle의 모든 Instance에는 Online Redo Log가 있다. 여기에는 DB에서 처리된 모든
Commit된 기록하는 두개 이상의 Log File로 구성된다.(한쪽이 Archive되는 동안 다른 쪽을
사용하기 위해서는 최소한 2개는 되어야 되지 않을까?) BackGround Process인 LGWR는 Transaction
이 Commit될때 마다 SGA의 Redo Log Buffer 에 임시로 저장된 해당 Redo Log 항목을 Online Redo
Log File에 기록한다.
- Redo Log File은 순환씩으로 작동하며, 즉 두개의 File로 Onlibe Redo Log가 구성된다면 첫번째
File을 채운다음 두번째 File을 채우고 두번째가 꽉차면 다시 첫번째에 채우는 방식으로 진행한다.
파일이 채워질 때 마다 Log Sequence번호가 할당된다.
2. Online Redo Log의 다중화
- Online Redo Log는 다중화된 Online Redo Log File Group으로 구성되어야 한다. 또한 단일
디스크 고장으로 LGWR 및 DB Instance가 실패하지 않도록 동일 Group의 Member를 여
러 디스크에 나누어 저장해야 한다.
- Redo Log를 Archive할 경우 로그멤버를 여러 디스크에 분산시켜 LGWR와 ARCH간의
경합을 제거한다. 예를들어 두개의 이중 온라인 리두로그 멤버 그룹이 있다면 서로 다른
디스크에 각각의 맴버를 저장하고 Archive를 다섯번째 Disk로 설정한다. 이렇게 하면 경
합을 줄일수 있다. 또한 DataFile과 Redo Log의 경합을 줄이려면 DataFile과 Redo Log
File은 서로 다른 디스크에 있어야 한다.
- LGWR가 최소한 그룹의 한멤버를 성공적으로 기록할수 있다면 (로그스위치또는 그룹에
쓰기가 진행중) 그룹에서 Access할 수 있는 멤버에 대한 기록작업은 정상적으로 진행할
수 있다.
- 그룹이 Archive되지않아 LGWR가 로그스위치에서 다은 그룹을 Access할 수 없는 경우 그룹을 사용할
수 있을때까지 DB의 작업은 중단된다.
- LGWR가 쓰려고 할 때 그룹의 모든 멤버에 대해 Access할수 없을때 오류를 돌려주며
DB Instance는 즉시 종료된다. 이러한 경우 LGWR추적파일과 Alert File에 오류 메시지를
기록한다.
3. 적정수의 Online Redo Log File
- 구성이 만족스러운지 결정하는 쉬운 방법은 LGWR 추적파일과 DataBase Alert File의 내
용을 검사하는 것이다. Check Point가 완료되지 않았거나 그룹이 Archive 되지않아 자주
기다려야 한다는 메시지가 자주 나오면 그룹을 추가래야 한다.
- MaxLogFiles Parameter는 DataBase당 온라인 리두 로그 파일 그룹의 최대수를 나타낸다. 지정하
지 않는다면 Oracle은 OS에 의존한다.
- Log_Files Parameter는 현재 인스턴스의 지속기간 동안 리두로그 파일 그룹의 최대수를 일시적으
로 감소 시킬수 있으나 Log_Files가 MaxLogFiles를 무효화하여 한계를 증가 시킬 수는 없다.
- MaxLogMembers Parameter응 그룹당 최대 Menber수를 결정한다.
4. 리두로그 그룹 생성
- alter database add logfile (‘log1c’,’log2c’) size 500k;
새로그멤버의 경로명을 포함하지 않으면 DB Server의 기본 Directory에 생성된다. 또
기존 운영체제의 파일을 재사용 하려면 파일의 크기를 지정하지 않아도 된다.
- alter database add logfile group 10 (‘log1c’,’log2c’) size 500k;
또한 Group Option과 Group 번호를 지정할수도 있다. 그룹번호는 1과 maxlogfiles 사이
여야 하며 그룹번호를 건너뛰면 안된다.(즉 10,20,30 등은 안됨), 그렇지 앟으면 DB의
제어파일의 불필요한 저장 영역이 낭비된다.
5. 리두로그 멤버 추가
- alter database add logfile member ‘log2b’ to group 2; 파일명은 지정해야 하지만 크기는 지정안해도 된다. 기존의 멤버의 크기에 의해 결정된다. 다음과
같은 경우도 사용 가능하다.
Alter database add logfile MEMBER ‘log2c’ to (‘log2a’,’log2b’);
즉 to다음에 다른 맴버를 지정할수도 있다.
6. 리두로그 파일의 이름변경 및 위치 재지정
a. DB Back한다.
b. Online Redo LogFile을 새위치로 복사
c. Alter database의 rename구를 이용하여 이름을 변경한다.
Alter database rename file ‘/usr2/log1a’ to ‘/usr3/log1a’
d. DB재 Open
e. 제어파일을 BackUp한다.
7. 리두로그 그룹삭제
- 그룹의 멤버수에 관계없이 인스턴스는 적어도 2개의 리두로그 파일 그룹을 필요로
한다.활성 그룹이 아닌경우에만 리두로그 그룹을 삭제할수 있다.
- 삭제하기전에 리두로그 그룹이 아카이브 되었는지 확인한다.(archive log명령과 list
매개변수를 사용)
svrmgrl>archive log list;
- 리두로그 그룹3을 삭제하는 예제
alter database drop logfile group 3;
8. 리두로그 멤버의 삭제
- 온라인 리두로그 파일을 삭제하여 다중화된 Online Redo Log가 일시적으로 비대칭이 될
수도 있다. 예를들어 이중화된 온라인 리두로그 파일 그룹을 사용할 때 다른 모든 그룹
이 각각 2개의 멤버를 가지고 있는 경우에도 그룹의 한멤버를 삭제할수 있다. 그러나
모든 그룹이 최소한 드멤버를 가지도록 즉시 수정하여 온라인 리두로그에 대해 가능한
단일 실패지점을 제거해야 한다.
- 그룹의 멤버수에 관계없이 인스턴스는 적어도 2개의 리두로그 파일 그룹을 필요로 한다.
- 삭제할 멤버가 그룹의 마지막 멤버라면 다른 멤버가 유효하게 될때까지 지우면 안된다.
리두로그 파일의 상태를 보려면 v$logfile이라는 View를 살피면 된다.
- 활성 그룹의 일부가 아닌경우에만 온라인 리두멤버를 삭제할수 있다. 활성그룹의 멤버를
삭제하려면 먼저 Log Switch를 강제로 발생시킨다.
- 멤버를 삭제하기전에 속한 그룹이 Archive 되었는지 확인한다.(archive log list;)
- 예]alter database drop logfile member ‘log3c’;
댓글 없음:
댓글 쓰기