13. redo log file의 다중화
리두로그 파일 (redo log file) 의 역할
- 복구를 하기 위해 필요한 파일
- redo log file 에 redo log buffer의 내용을 적는 백그라운드 프로세서 -> LGWR
- redo log file은 순환적으로 사용이 된다 --> 재사용
- 변경사항이 갑자기 많은 때에 LGWR가 Redo log file에 내용을 적다가 redo log file이 깨지는 경우가 종종 생긴다
ex) 대학교 학교 시스템에 갑자기 insert & update & delete작업이 몰린다 --> 수강신청
장애에 대처를 빠르게 하려면 평소에 백업을 잘해야한다.
redo log file같은 경우는 다중화를 해놔야한다
DB장애는 어쩔 수 없이 발생한다. 평상시에 백업을 해둬서 대비를 잘해둬야한다
그룹 : 논리적인 단위
멤버 : 눈에 보이는 파일
log switch : 다음 그룹으로 패스
■ 실습 단계
#1. 리두로그 그룹이 몇 개인지 확인
#2. 리두로그 그룹의 멤버가 몇 개인지 확인
#3. 리두로그 그룹의 멤버가 무엇인지 확인
#4. 리두로그 그룹의 멤버를 추가
#5. 리두로그 그룹의 멤버가 추가되었는지 확인
◆ 실습 구현
#1. 리두로그 그룹이 몇 개인지 확인( log_status.sql)
select group#, status, sequence#, archived
from v$log;
save log_status.sql
SEQUENCE# = 몇번째 시퀀스인지
ARC = 아카이브에 떨어트렸는지
#2. 리두로그 그룹의 멤버가 몇 개인지 확인
select group#, members
from v$log;
그룹당 멤버가 하나씩 있다(※멤버가 삭제되면 DB가 다운된다)
현장의 팁! rm을 수행하기 전에 3번 생각한다. 혹은 옆사람에게 물어본다.
rm은되돌릴 수 없다 -> 장애발생
#3. 리두로그 그룹의 멤버가 무엇인지 확인
select group#, member from v$logfile;
#4. 리두로그 그룹의 멤버를 추가
alter database add logfile member '/u01/app/oracle/oradata/Ouh/멤버의이름' to group 그룹번호;
alter database add logfile member '/u01/app/oracle/oradata/Ouh/redo01b.log' to group 1;
멤버의 이름은 유니크해야한다
그룹 번호를 확인하기
#5. 리두로그 그룹의 멤버가 추가되었는지 확인
select group#, members from v$log;
select group#, member from v$logfile;
1번 그룹에 멤버가 2개인걸 확인할 수 있다
select group#, member from v$logfile;
문제1 (이수자평가 3번)
다음과 같이 리두로그 그룹과 멤버를 구성하세요
alter database add logfile member '/u01/app/oracle/oradata/Ouh/redo02b.log' to group 2;
alter database add logfile member '/u01/app/oracle/oradata/Ouh/redo03b.log' to group 3;
select group#, members from v$log;
select group#, member from v$logfile order by 1 , 2 ;