by 구루비 CONTROL FILE V$CONTROLFILE V$PARAMETER ALTER SYSTEM CONTROL_FILES [2002.01.23]
- DB의 구조(Structure)를 포함하는 조그마한 바이너리 파일 입니다.
- 오라클이 사용하며, DBA도 변경 할 수 없습니다.
- 데이타베이스의 구조변경이나 변경사항이 있을 때 자동으로 업데이트 됩니다.
- 모든 데이터파일, 로그 파일의 정보(경로, 이름 등)를 갖고 있습니다.
- 컨트롤 파일은 오라클 DB를 마운트하고, 오픈하여 사용하는데 꼭 필요한 파일 입니다.
- 컨트롤 파일이 손상되면 오라클을 mount, open 할 수 없으므로 적어도 두 개 이상의 컨트롤 파일을 백업 받아서 다른 디스크에 저장해 놓는 것이 좋습니다
- 복구시 필요한 동기화(Synchronization)정보를 저장 합니다.
- initSID.ora파일의 CONTROL_FILES 파라미터를 통해 지정 합니다.
- CONTROL_FILES파라미터의 값은 쉼표로 구분된 하나 이상의 Control File 이름을 나타냅니다.
- 인스턴스는 데이터베이스 작업을 하는동안 CONTROL_FILES 파라미터에 나열된 Control File을 유지 관리합니다.
-- 예제1 CONTROL_FILES = "C:\Oracle\oradata\control01.ctl" -- 예제2 CONTROL_FILES = ("C:\Oracle\oradata\control01.ctl","C:\Oracle\oradata\backup\control02.ctl")
V$CONTROLFILE : 컨트롤 파일의 이름과 상태의 리스트
V$PARAMETER : 파라미터의 위치정보
V$CONTROLFILE_RECORD_SECTION : 컨트롤 파일에 있는 이전 자료에 대한 정보
C:\> SQLPLUS /nolog SQL> CONN / AS SYSDBA SQL> SELECT name FROM V$CONTROLFILE; NAME --------------------------------------------------- C:\ORACLE\ORADATA\ORACLE\CONTROL01.CTL C:\ORACLE\ORADATA\ORACLE\CONTROL02.CTL C:\ORACLE\ORADATA\ORACLE\CONTROL03.CTL SQL> SELECT value FROM V$PARAMETER WHERE name='control_files'; VALUE ------------------------------------------ C:\Oracle\oradata\oracle\control01.ctl, C:\Oracle\oradata\oracle\control02.ctl, C:\Oracle\oradata\oracle\control03.ctl 1 행이 선택되었습니다. -- 컨트롤 파일에 있는 위치, 이름 정보 SQL> SHOW PARAMETER CONTROL_FILES; NAME TYPE VALUE --------------- ------- ------------------------------ control_files string D:\oracle\oradata\oracle\CONTR OL01.CTL, D:\oracle\oradata\or acle\CONTROL02.CTL, D:\oracle\ oradata\oracle\CONTROL03.CTL
CONTROL_FILES 초기화 파라미타에 완전한 경로로 컨트롤 파일 이름을 8개 까지 지정함으로써 다중 컨트롤 파일을 가진 데이타베이스를 생성 할 수 있습니다.
오라클은 서로 다른 디스크에 최소한 두개의 컨트롤 파일을 저장할 것을 권장합니다. 한 컨트롤파일에 문제가 생기면 사본을 이용하여 인스탄스를 재시작 하면 됩니다.
1) 데이타베이스를 종료 합니다.
2) 운영체제 명령을 사용하여 기존의 Control File의 사본을 다른 디스크 장치에 Copy합니다.
3) 모든 컨트롤 파일 이름이 포함되도록 CONTROL_FILES을 편집 합니다.
CONTROL_FILES =
("C:\Oracle\oradata\control01.ctl","C:\Oracle\database2\backup\control02.ctl")
4) 데이타베이스를 다시 시작 합니다.
1) ALTER 명령어를 사용하여 파라미터파일 정보를 수정 합니다.
SQL> ALTER SYSTEM SET CONTROL_FILES = 'D:\oracle\oradata\disk1\ctrl01.ctl', 'D:\oracle\oradata\disk2\ctr02.ctl' SCOPE=SPFILE;
2) 데이터베이스를 Shutdown 합니다. DB를 종료하는데 abort 옵션을 제외한 다른 옵션은 사용 할 수 있습니다.
3) OS명령어를 사용하여 컨트롤 파일을 복사 합니다
CP D:\oracle\oradata\disk1\ctrl01.ctl D:\oracle\oradata\disk2\ctrl02.ctl
4) DB를 STARTUP 합니다.
- 강좌 URL : http://www.gurubee.net/lecture/1089
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.