Steady Mind For My Life

https://github.com/jongseok3910/Spring-Study

Oracle

REDO 로그 파일 & REDO 데이터(2)

함탕 2023. 10. 18. 20:26
728x90
728x90

REDO 로그 파일의 순환 기록

데이터베이스에는 반드시 두 개 이상의 REDO 로그파일이

할당돼야 한다.

LGWR은 할당된 REDO 로그 파일은 순환해 가며

REDO 데이터를 기록한다.

(중요한 자료는 백업 하듯이 REDO로그도 기록하는 느낌)

 

순환 기록의 동작

REDO 로그파일 순환1

REDO 로그 파일 세 개 중 한개가 'CURRENT' 상태다.

(LGWR가 REDO 데이터를 내려 쓸 대상)

 

#1에 REDO 로그 데이터를 기록하다가 

데이터가 가득차면

 

REDO 로그파일 순환2

 

로그 스위치가 발생하며 #2를 'CURRENT'로 전환한다.

 

REDO 로그파일 순환3

 

로그파일 #2에 REDO 데이터를 기록한다.

이 과정이 반복되고 #3에서 #1로 로그 스위치가 일어나면

#1에 기록된 REDO데이터는 덮어쓰이게 된다.

 

오라클은 이렇게 여러 REDO 로그 파일은 순환하는 형태로 REDO 데이터를

기록한다.

 

순환되며 과거의 REDO 데이터는 덮어쓰여 손실되기 때문에

그 전에 REDO 데이터를 다른 파일로 복사해야한다.

 

아카이브 로그 모드와 아카이브 REDO 로그 파일

아카이브 로그 모드는 데이터베이스가 REDO 데이터를 덮어쓰기 전에

REDO 데이터를 아카이브 로그 파일로 복사해 운영 중인 REDO 데이터를 

저장하는 작동 방식이다.

 

백업 파일을 이용해 복구해야 하는 에러가 발생했을 때, 백업본에

아카이브 REDO 로그 파일을 적용하는 것으로 장애 발생 시점까지 

복구 할 수 있다.

 

*아카이브 로그 모드가 아니면 아카이브 REDO 로그파일은 없다.

(REDO 데이터가 덮어쓰여지고 없어진다) 

 

- 아카이브 REDO 로그 파일생성

데이터베이스가 아카이브 로그 모드로 작동 중일 때는 REDO로그파일이

가득차 로그 스위치가 발생하면, 백그라운드 프로세스인 'ARCn'가

새 아카이브  REDO 로그 파일에 REDO 로그 파일에 기록된 REDO 데이터를

복사한다.

 

아카이브 REDO 로그파일 생성

 

- 로그 시퀀스 번호

오라클은 아카이브 로그 모드에서 데이터의 변경이 일어날 떄마다

REDO 데이터를 계속 생성하고 로그 스위치가 실행될 때 마다 계속

아카이브 REDO 로그파일을 생성한다.

 

이렇게 지속적으로 변경이 발생하는 REDO 로그 파일과 차례로

생성된 아카이브 REDO 로그 파일을 식별하기 위해

로그 시퀀스 번호(log sequence) 라는 일련 번호를

REDO 로그 파일과, 아카이브 REDO 로그 파일에 부여한다.

 

로그 시퀀스 번호는 로그 스위치가 발생 후 REDO 데이터를

다음 REDO 로그 파일에 쓰기 시작할 때 할당된다.

할당되는 값은 과거의 로그 시퀀스 번호에서 '+1'한 값이다.

 

728x90
300x250