Control File의 추가 및 삭제 그리고 복구
- 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로 복사한다.(이름변경하여 복사)
--정상적으로 작동
- 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)파일 리스트가 뜬다.
- 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'을 다시 시작하면 정상적으로 오라클 서버가 구동된다.