ch5. Control File 관리하기.
[Oracle Admin]/oracle관리실무 2014. 10. 20. 12:17 |
1. 각 버전별 Control File의 내용.
- control file은 binary file이라서 os편집기로 직접 내용을 볼 수 없다. -→ 내용을 확인하려면 해당 파일을 Trace작업을 별도로 수행해서 확인해야 한다.
오라클 7 버전 |
1. 데이터베이스에 대한 전체 요약 정보 저장 3. 로그 그룹의 각 로그 멤버에 관한 정보 저장 |
오라클 8 버전 |
(7버전의 5가지 항목에 내용 추가) - 8 버전부터 등장한 RMAN 관련 정보 |
Oracle 9i 버전 |
1. Database Entry : 데이터베이스 전체에 대한 정보 요약 8. Tablespace Records : 각 tablespace 이름과 링크된 데이터 파일 정보, PITR(Point In Time Recovery) 관련 정보 저장 |
Oracle 10g 버전 - 총 30개의 정보 |
1. DATABASE ENTRY 19. BACKUP PIECE RECORDS |
Oracle 11g 버전 - 총 33개 항목 |
1. DATABASE ENTRY 23. BACKUP LOG RECORDS |
2. Control File 관리하기.
** pfile의 내용과 실제 내용이 다를 경우 DB는 죽는다. 이게 맞춰져야 한다. pifle에는 control01.ctl, control02.ctl, control03.ctl이 적혀있는데, 실제는 control01.ctl, control02.ctl 만 있는 경우, db죽는다. 단, pfile에는 control01,02,03이 적혀있는데, 실제는 control01,02,03,04가 있는 경우 어차피 오라클이 pfile을 보고 찾아가므로 실제 존재하는 control04.ctl은 인식을 하지 않는다.
▶ 다중화(multiplexing): control file은 삭제될 경우 심각한 문제가 발생하므로, 복사본을 만들어서 분산시켜 사용하는 것을 권장한다.
→ 여러곳으로 다중화 할 경우에는 Parameter File에 Control File의 위치를 기록한 후 그 위치에 Control File 복사
[실습1] Spfile일 경우 다중화.
: 현재 운영중인 control file의 경로를 확인한 후 /home/oracle/disk1~3/control01~03.ctl 세가지로 다중화 해보자.
0. 현재 instance 상태 확인 : select status from v$instance;
1. 현재 파라미터 pfile을 사용하는지, spfile을 사용하는지 조회 : show parameter spfile; (또는 pfile;) -> value 값 있으면 spfile사용중
2. 현재 control file 조회 : select name from v$controlfile;
3. spfile 내용 변경 : alter system set control_files='/home/oracle/disk1~3/control01~03.ctl' scope=spfile;
4. Instance 강제 종료 : shutdown immediate;
5. 대상 디렉토리 생성 후 파일 복사.
6. 정상적으로 startup 시킨후, 현재 control file 조회.
[실습2] Pfile일 경우 다중화.
: 현재 spfile이므로 pfile을 생성한 후 spfile을 삭제하고 다중화 작업해보겠습니다.
/home/oracle/disk1~3/control01~03.ctl 을 /home/oracle/disk4~6/control04~06.ctl로 다중화.
[ 실습 준비과정 ] : pfile 생성한 후 spfile 삭제하고 Isntance 재시작.
* 현재 파라미터 pfile사용하는지, spfile사용하는지 조회 : show parameter spfile;
* 파라미터파일 조회 : ls $ORACLE_HOME/dbs
* spfile로부터 pfile 생성 : create pfile from spfile;
* spfile 삭제 : !rm -f $ORACLE_HOME/dbs/spfiletestdb.ora
--spfile과 pfile이 동시에 존재할 경우, spfile만 인식하므로, pfile을 사용하려면 spfile을 삭제해 주어야 한다.
* instance 재시작 : shutdown immediate -> startup
0. 현재 파라미터 pfile을 사용하는지 spfile을 사용하는지 조회 : show parameter pfile; --value 값이 없으면 pfile 사용중.
1. 현재 사용중인 control file 조회 : select name from v$controlfile;
2. Instance 강제 종료 : shutdown immediate;
3. pfile을 vi창으로 열어 control file의 경로를 수정한 후 저장 : !vi $ORACLE_HOME/dbs/inittestdb.ora
4. 해당 디렉토리 생성 후 control file 복사.
***pfile을 사용하여 다중화 하는 경우에는, control file을 먼저 복사 한 후에, vi창으로 pfile열어서 control file경로를 수정해도 상관 없다.***
5. 정상 open후 확인 : startup -> select name from v$controlfile;
control file 다중화 정리 / 요약 | |
spfile의 경우. |
1. spfile 내용 변경 : alter system set control_files='/home/oracle/disk1~3/control01~03.ctl' scope=spfile; 2. Instance 강제 종료 : shutdown immediate; 3. 대상 디렉토리 생성 후 파일 복사. 4. 정상적으로 startup 후 현재 control file조회
|
pfile의 경우. |
1. Instance 강제 종료 : shutdown immediate; 2. pfile을 vi창으로 열어 control file의 경로를 수정한 후 저장 : !vi $ORACLE_HOME/dbs/inittestdb.ora 3. 해당 디렉토리 생성 후 control file 복사. -> 2,3번 과정 순서 바꿔서 해도 상관 없음. 4. 정상 open후 확인 : startup -> select name from v$controlfile;
|
- control file에는 변경되는 정보가 실시간으로 저장되기 때문에 가장 최근에 사용한 것만 진짜 control file이고 나머지들은 사용할 수 없는 구 control file로 변하므로, 이동이나 복사할 때 가장 최근에 사용했던 것만 사용해야 한다.
[실습시험]
spfile을 사용하여 아래와 같이 control file을 다중화 하세요.
[실습 준비과정 : 에러 발생] |
-- spfile과 pfile 모두 존재 하지 않는다.
|
[ 답안 ]
1. 원본 pfile을 찾아서 복사해 온다. : ls $ORACLE_BASE/admin/testdb/pfile
2. pfile을 vi창으로 열어서 확인해보면, control file 경로가 구경로로 지정되어있음을 확인할 수 있다.
3. 정상적으로 startup 한 후, 현재 파라미터 파일을 pfile사용하는지, spfile사용하는지 조회한다. -> show parameter spfile;
4. pfile을 이용해 spfile을 생성한다.
5. 현재 사용중인 control file 조회후, spfile의 내용을 변경한다.
-> Instance를 강제 종료한 후, 해당 디렉토리를 생성하고 파일을 복사한다.
6. 정상적으로 startup한 후, 현재 사용중인 controlfile을 조회한다.
'[Oracle Admin] > oracle관리실무' 카테고리의 다른 글
spfile ↔ pfile 변경. (0) | 2014.10.30 |
---|---|
ch8. oracle저장구조 (미완) (0) | 2014.10.23 |
ch7. tablespace와 data file 관리하기. ★★★ (0) | 2014.10.21 |
ch6. Redo log 관리하기. (3) | 2014.10.20 |
ch4. oracle 시작하기와 종료하기 (0) | 2014.10.20 |
ch3. Oracle Background Processes (0) | 2014.10.20 |
ch2. SQL문장의 실행원리 (0) | 2014.10.19 |
ch1.Oracle Architecture (0) | 2014.10.17 |