Redo log
- DB에서 발생하는 모든 변경사항 기록하는 파일
- 장애시 복구를 위한 DML 문장 저장 (데이터 파일에 쓰여지지 않은 커밋된 데이터를 복구하기 위해서 사용)
- LGWR은 그룹 내의 모든 리두 로그 파일에 동시에 동일한 정보를 기록
- 최소 2개 이상의 리두 로그 그룹이 필요
- 리두로그 그룹내 멤버는 서로 다른 디스크에 저장 권고
- 각 그룹내 리두로그 멤버는 이중화 권고
*리두로그 파일 그룹 크기를 증가시키거나 감소시키려면 새로운 리두로그 파일 그룹을 추가 후 이전 리두로그 파일 그룹을 삭제
STATUS : 로그 상태
V$LOG 에서 확인 가능
Status | 설명 |
UNUSED | 온라인 리두 로그가 기록된 적이 없음 새로 추가된 Redo log일 경우 |
CURRENT | 현재 리두 로그 리두 로그가 활성화된 상태 |
ACTIVE | 로그가 Active 상태지만 현재 리두로그는 아닌 상태 Check Point 이전 상태 crash recovery에 필요 블록복구에 사용 중일 수 있음 보관할 수도 있고 안할 수도 있음 |
CLEARING | ALTER DATABASE CLEAR LOGFILE 명령문 이후에 빈 로그로 다시 생성됨 로그가 지워지면 UNUSED 상태로 변경됨 |
CLEARING_CURRENT | 닫힌 스레드에서 현재 로그를 지우는 중인 상태 |
INACTIVE | 인스턴스 복구에 더이상 필요 없는 상태 Check Point 완료 이후의 상태 media reovery에 사용 중일 수 있음 보관할 수도 있고 안할 수도 있음 |
Redo log 그룹 내 멤버 이중화
Redo log File 정보
리두로그 그룹 3개, 리두로그 파일이 그룹 내 단일 구성으로 되어있는 것을 확인
SELECT a.thread# "Thread#"
, a.group# "Group#"
, b.member "Logfile"
, a.bytes/1024/1024 "Size (MB)"
, a.status
, a.sequence#
FROM v$log a
, v$logfile b
WHERE a.group#=b.group#
ORDER BY 1, 2, 3
리두로그 멤버 추가
SQL> alter database add logfile member '/u01/app/oracle/oradata/ORCL/redo01_2.log' to group 1;
Database altered.
SQL> alter database add logfile member '/u01/app/oracle/oradata/ORCL/redo02_2.log' to group 2;
Database altered.
SQL> alter database add logfile member '/u01/app/oracle/oradata/ORCL/redo03_2.log' to group 3;
Database altered.
Redo log File 정보 재확인
SELECT a.thread# "Thread#"
, a.group# "Group#"
, b.member "Logfile"
, a.bytes/1024/1024 "Size (MB)"
, a.status
, a.sequence#
FROM v$log a
, v$logfile b
WHERE a.group#=b.group#
ORDER BY 1, 2, 3
Log switch 발생
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
Redo log File 정보 재확인
SELECT a.thread# "Thread#"
, a.group# "Group#"
, b.member "Logfile"
, a.bytes/1024/1024 "Size (MB)"
, a.status
, a.sequence#
FROM v$log a
, v$logfile b
WHERE a.group#=b.group#
ORDER BY 1, 2, 3
리두로그 그룹 2를 사용하고 있었는데 로그스위치로 인하여 그룹2의 상태는 ACTIVE 상태가 된다.
Log switch 두번 더 발생
다시 그룹2가 CURRENT 상태가 되고 나머지 그룹1, 3은 ACTIVE 상태가 된다.
Check point 발생
SQL> ALTER SYSTEM CHECKPOINT;
System altered.
Redo log File 정보 재확인
SELECT a.thread# "Thread#"
, a.group# "Group#"
, b.member "Logfile"
, a.bytes/1024/1024 "Size (MB)"
, a.status
, a.sequence#
FROM v$log a
, v$logfile b
WHERE a.group#=b.group#
ORDER BY 1, 2, 3
체크포인트 발생으로 그룹1, 3의 상태는 INACTIVE 상태가 된다.
'DB ORACLE 공부 기록' 카테고리의 다른 글
Archive log full 관리 (0) | 2023.01.03 |
---|---|
Redo log file 관리 (추가/삭제) (0) | 2022.12.21 |
ARCHIVE LOG MODE (아카이브 로그 모드) 경로 변경 (0) | 2022.12.19 |
SPFILE 운영 환경 파라미터 변경에 따른 SCOPE 설정 값 (0) | 2022.12.06 |
ARCHIVE LOG MODE 변경 (0) | 2022.12.06 |