데이터베이스 시스템인 오라클에서 복구시 사용되는 것들이 있는데요.
그중에 하나가 리두로그 파일입니다.
리두로그 파일은 데이터베이스, 즉 오라클 에러 발생시에 데이터 복구를 위한 로그파일인데요.
이 리두로그 파일은 DML 작업시에 기록이 되게 됩니다.
DML 작업시에 시스템에 변경되는 작업의 내용을 기록하는 것이죠.
이것을 통해서 문제가 생기면 이 파일을 이용해서 작업순서에 맞게 복구를 하게 되는 겁니다.
먼저, DML 작업으로 생성되는 리두로그는 SGA에 위치하게 되는데
SGA는 System Global Area로서 오라클 데이터 서버가 구동을 하게 되면
해당 인스턴스 내에서 생기게 되는 메모리 영역입니다.
이 메모리 영역안에 리두로그가 구성이 되는 것이구요.
그리고 메모리 안의 그 영역을 리두로그 버퍼(Redo Log Buffer)라고 부릅니다.
리두로그 버퍼는 메모리 영역 안이기 때문에 용량이 제한 되어 있습니다.
그렇다 보니 안에 생성된 로그가 용량이 다 찼을 경우에는 먼저 만들어진 로그에
덮어쓰기 형식으로 로그를 기록하게 되는데요.
이때는 이전 로그에 대한 기록을 확인할 수 없게 됩니다.
속된 말로 그냥 날아가 버리는 것이죠.
그래서 지워지기전에 리두로그를 디스크(disc)에 쓰게 되는데요,
즉 메모리에서 디스크로 파일을 옮기는 겁니다.
이떄 관여하는 것이 Log Writer, 줄여서 LGWR 입니다.
즉 우리가 말하는 리두 로그 파일은 LGWR에 의해서 디스크에 기록되어진 로그 파일이라고 보면 되겠습니다.
리두 로그파일은 리두로그 멤버와 리두로그 그룹으로 구성되는데요.
우선 리두로그 멤버는 리두로그 버퍼에 있는 내용을 디스크에 기록, 저장된 파일입니다.
즉 리두로그 멤버는 리두로그 파일 그 자체다라고 보시면 되겠습니다.
이러한 리두로그 멤버가 구성하는 것이 리두로그 그룹인데요.
이 리두로그 그룹안에 있는 리두로그 멤버는 동일한 로그 기록을 유지하고 있습니다.
무슨 말인지 감이 안잡히시죠?
우선, 아셔야 할건 리두로그 파일에 장애가 일어나게 되면 오라클, 즉 데이터베이스를 기동시킬 수 없습니다.
그리고 장애가 발생하면 비정상적으로 종료가 되구요.
이러한 상황은 리두 로그 파일을 삭제 한다던지 디스크의 문제로 볼 수 있습니다.
제가 위에서 같은 그룹의 멤버는 동일한 로그 기록을 유지한다고 했죠? 이 때문인데요.
보통 같은 리두로그 그룹에서는 각 멤버를 다른 디스크에다 각각 위치시켜서 동일한 기록을 유지,
이러한 오류시에 해당 오류가 난 디스크가 아닌 동일한 그룹의 다른 멤버가 있는 디스크에서 복구가 가능한겁니다.
다음의 보시는 그림은 LGWR 이 디스크에 리두로그 파일을 쓸때의 모습입니다
LGWR는 두개의 디스크에 리두로그 파일을 기록하는데요.
위에 보시듯 각 동일한 그룹을 각각의 디스크에 나눕니다. 그리고 멤버는 나뉘어진 그룹에 각각 담기구요.
앞 글에서 각 그룹의 멤버는 동일한 로그 기록을 저장한다고 했죠?
LGWR는 리두로그 파일을 디크스에 쓸때 두 디스크 동시에 멤버로서 기록함으로써
에러시에 한쪽이 문제가 있어도 다른 한쪽의 디스크가 복구를 가능케 합니다.
그리고 각 그룹의 멤버가 용량이 다 차서 더 이상 리두로그 파일을 기록할 수 없을때 다음 리두로그 그룹으로
리두로그 파일을 기록하게 됩니다. 이때 리두로그 그룹간의 이동을 로그 스위치(Log Switch)라 그러구요.
로그 스위치가 일어나 다시 처음의 리두로그 그룹으로 돌아와 멤버에 기록하는 것을
로그 스피닝(Log Spinning)이라고 합니다.
LGWR가 작업을 하는 프로세스를 LGWR 백그라운드 프로세스라 부르는데,
이 프로세스가 작업중인 리두로그 그룹을 Current Redo Log Group, 현재 리두로그 그룹이라 부른답니다.
이로써 잠시 리두 로그 파일을 정리 해보면요,
리두 로그 파일은 최소한 두개 이상의 리두로그 그룹을 가져야 합니다. 그래야 용량이 다차면 그룹을 옮기면서 로그 기록을 남길 수 있죠.
그리고 그 그룹에는 한개 이상의 멤버가 존재 해야 하는데요. 디스크 하나에 로그 기록을 남긴다면 멤버 하나가 구성되는 것이겠죠?
그리고 위의 로그 스피닝과 로그 스위치가 보여주듯 순환 구조를 가집니다.
원문 : http://runtoyourdream.tistory.com/116
'ORACLE > ADMIN' 카테고리의 다른 글
[펌] 테이블스페이스 생성 LMT & DMT (0) | 2012.04.03 |
---|---|
리두로그파일 그룹 추가 (0) | 2012.03.31 |
[펌] 오라클 파라메터 파일 정리(spfile, pfile) (0) | 2012.03.29 |
오라클 시작(Startup) (0) | 2012.03.28 |
ORACLE ADMIN 강좌 페이지 (0) | 2012.03.26 |