본문 바로가기

자바 웹 개발자가 될거야/DB

[Oracle] Controlfile 다중화

< Controlfile 다중화 >

 

- DB의 모든 동기화 정보가 기록된 곳

- DB당 하나 운영 가능

- 최대 8개까지 다중화 기능 제공 ( 오라클 권장사항 3개 )

- DB 생성 시 및 생성 후 변경 가능

- 다중화가 되어있다면 최신 시점으로 복구가 가능해진다

- 백업을 받기 위해선 DB가 멈춰야하지만 다중화는 하나가 손상되더라도 남은 하나로 복구 가능

 

 

① Controlfile 정보 조회

 

SELECT name
FROM v$controlfile;

 

 

② Controlfile 다중화 절차

 

- 1. DB 추가

 

  · 기존에 존재하는 Controlfile도 적고 추가할 Controlfile도 적어줘야 한다

  · 콤마(,)로 파일 구분

  · 추가할 Controlfile은 scope 지정이 필요

  · scope가 memory v나 both v면 지금 실행되는 DB에 바로 적용하라는 의미지만 아직 DB가 생성되지 않아서 사용불가

  · scope = spfile은 재시작할 때 적용하라  

 

ALTER system set control_files = '/u01/.../o1_mf_fwvn95xm_.ctl', 
                                 '/u01/.../o1_mf_fwvn96cd_.ctl', 
                                 '/u01/.../control03.ctl' scope=spfile;

 

- 2. DB 종료

 

  · DB를 정상적으로 끄면서 가장 정상적인 방법으로 종료

 

shut immediate;

 

 

- 3. OS 추가

 

  · 복사할 때 DB추가할 때 지정한 경로와 파일명으로 복사해줘야 함

 

    · 첫 번째든 두 번째 controlfile이든 상관없이 같기 때문에 아무거나 복사하면 됨

    · 첫 번째 contreolfile 경로로 가서 확인

!
cd /u01/app/oracle/oradata/ORCL/controlfile
ls => 첫 번째 controlfile 확인
cp o1_mf_fwvn95xm_.ctl /home/oracle/control03.ctl
cd /home/oracle
ls => 세 번째 controlfile 확인
exit

 

- 4. DB 시작

 

startup

 

  · DB 시작할 때 Mount를 못 올라가면 controlfile에 문제가 있다는 의미

  · show parameter control_files로 조회해서 확인

 

 

- 5. 다중화 확인

 

  · DB가 오픈된 경우에만 조회 가능

 

SELECT name
FROM v$controlfile;