본문 바로가기

Database

Control File의 추가 및 삭제 그리고 복구

  1. Control File 복사

     

--SETP1

--CONTROL FILE LIST 조회

SELECT *

FROM V$CONTROLFILE;

 

--SETP2

--CONTROL FILE 위치 기타정보 조회

SELECT *

FROM V$PARAMETER

WHERE NAME='control_files';

 

--SETEP3

--이제 CONTROL_FILE 복사(변경)

--위에서 실행한 결과의 VALUE 컬럼의 값을 복사하여 아래와 같이 실행

 

 

ALTER SYSTEM SET CONTROL_FILES="C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE10\CONTROL01.CTL",

"C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE10\CONTROL02.CTL",

"C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE10\CONTROL03.CTL",

"D:\CONTROLFILEDIR\CONTROL04.CTL"

SCOPE=SPFILE;

 

 

--위와 같이 기본 값에서 이제 1개의 컨트롤 파일을 추가해준다.

C:\oracle\product\10.1.0\oradata\oracle10\CONTROL01.CTL D:\CONTROLFILEDIR\CONTROL04.CTLD 복사한다.(이름변경하여 복사)

 

--정상적으로 작동

 

  1. Control File 깨먹기

 

-- 이제 D:\CONTROLFILEDIR\CONTROL04.CTL 지우고

Shutdown immediate 명령어로 오라클을 종료 , 재구동 시켜보면, 정상적으로 Startup OPEN 단계까지 이루어지지 않는다.

 

--이제 이를 복구하도록 한다

 

우선 부팅 단계가 무엇인지 확인한다.

 

SELECT STATUS

FROM V$INSTANCE; --STARTED ( UNMOUNT단계)

 

이제 아래 명령어를 실행하여 Contro_file Parameter 값을 확인한다.

 

SHOW PARAMETER control_files;

 

명령어를 실행하게 되면 위에서 변경했던 *.ctl(Control File)파일 리스트가 뜬다.

 

  1. Control File 삭제

 

이제 위에서 *.ctl 목록들 중에서 위에서 지워준 'CONTROL04.CTL' 파일을 제외하고 다시 Control File 인식시켜준다.

 

ALTER SYSTEM SET CONTROL_FILES="C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE10\CONTROL01.CTL",

"C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE10\CONTROL02.CTL",

"C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE10\CONTROL03.CTL"

scope=spfile;

 

마지막으로 오라클을 rebooting 한다.

이때 , rebooting 위해서는 shutdown abort 명령을 사용해야 한다. 이는 mound 되지 않고, open 되지 않았기 때문이다.

 

'Startup' 다시 시작하면 정상적으로 오라클 서버가 구동된다.