[10g] Control File 다중화 및 Trace File 로 백업 및 복구

컨트롤 파일의 다중화
-SPFILE

-PFILE
Trace File 로 백업 및 복구


컨트롤 파일은 DB구조정보를 담고 있는 2진 파일이다.
최소 두개가 존재하게 되고 서로 다른 저장소에 저장하는것이 바람직하다.
컨트롤 파일은 첫번째 파일을 제외한 파일은 첫번째 파일의 복사본이다.(즉 모든 파일의 내용이 같아야 한다.).

Control File은 Nomount 상태가 될 때 Parameter 에서 Control File의 위치를 읽어오고 Mount 상태가 될 때 실제로 Access 된다. 즉 Control File의 다중화는 spfile 또는 pfile를 수정하므로써 이루어진다.

컨트롤파일의 복사(백업)시에 주의사항
1. 컨트롤 파일을 복사(백업)할 때에는 반드시 shutdown immediate 를 한 후에 복사를 해야 한다.
(컨트롤파일은 DB가 Mount 상태일 때 parameter File에 적힌 내용대로 반드시 존재해야 하며 다중화된 파일들의  버전이 동일해야 한다.)
2. 컨트롤파일은 최대 8개까지 다중화가 가능하다.

컨트롤 파일의 다중화

SPFILE

절차

1. 현재 컨트롤 파일의 개수와 위치를 파악한다.
2. spfile 에 새로운 컨트롤 파일을 추가한다.
3. 서버를  Shutdown Immediate 한다.
4. OS 레벨에서 새로운 컨트롤파일을 기존 컨트롤 파일을 복사하여 생성한다.
5. 서버를 Startup 시킨다. 


1. 현재 컨트롤 파일의 상태 조회


SELECT * FROM V$CONTROLFILE;
or
SHOW PARAMETER control_files





2. 새로운 컨트롤 파일을 추가한다.

아래의 예제에서는 Control04.ctl,  Control05.ctl 를 추가했다.
추가 할때에는 파라미터의 내용을 변경하는 것이기 때문에 기존의 파일의 내용에 추가할 내용을 입력해야 한다.
scope는 spfile로 해야 한다.
 현재 물리적으로 파일이 존재하지 않기 때문에 Scope를 spfile 로 하는 것인데, 어짜피 다른 Scope 값은 설정해도 에러가 발생한다.
ALTER SYSTEM SET control_files=
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL01.CTL'
, 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL02.CTL'
, 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL03.CTL'
, 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL04.CTL'
, 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL05.CTL'
scope = spfile;

3. Shutdown immediate

4. OS명령으로 파일을 생성한다 .
반드시 추가했던 이름과 경로에 파일을 생성해야 한다.
 
5. Startup

startup 후에 V$CONTROLFILE 를 조회해본 결과.



★ 컨트롤 파일을 기존 5개에서 2개로 줄이고 싶다면 아래와 같이 컨트롤 파일을 추가하는 구문에 두개만 기술하고 서버를 재시작 하면 된다.

ALTER SYSTEM SET control_files=
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL01.CTL'
, 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KARA\CONTROL02.CTL'
scope = spfile;

PFILE

pfile은 spfile과 다르게 parameteer file 을 수정하여 적용시킨다.
절차
1. shtudown immediate
2. pfile 수정
3. OS 명령으로 파일 복사
4. startup


1. shutdown immediate

2. pfile 수정
control_files= 파라미터에 내용을 입력한다.

3. os 명령으로 파일복사
pfile 에 설정한 내용대로 실제 컨트롤파일을 복사하여 구성한다.

4. startup






Trace File 로 백업 및 복구

컨트롤파일의 설정내용을 Trace File로 백업을 하는것을 말한다.
이 방법은 실무에서 많이 사용하고 있으며 매일 백업하는것을 권장한다.

이렇게 Trace 으로 만들면 Trace 파일을 이용하여 Control File을 재생성 할 수 있다.


- 경로 확인
Trace File이 생성되는 경로를 조회한다.
show parameter user_dump_dest

- Trace File 생성
Trace File이 생성된다. DBA 권한의 계정으로 해야 한다.
아래처럼 옵션으로 as 파일명을 주면 해당 파일명으로 생성된다.
alter database backup controlfile to trace [as 'path/fileName.sql'];

아래는 예로 생성된 Trace 파일의 내용이다.
파일의 내용을 잘 살펴보면 Set #1. NORESETLOGS case 와  Set #2. RESETLOGS case 의 스크립트로 나눠진것을 알 수 있다. resetlogs 옵션은 LSN(log sequenc Number)을 초기화 할건지를 판단한다.




이렇게 백업을 해놓으면 나중에 컨트롤 파일에 문제가 발생했을때 위 스크립트를 이용하여 복구가 가능해 진다.






컨트롤 파일을 Binary 로 백업
- bak 로 백업 받는 방법임
- 실무에서는 관리하기 어려워서 잘 사용안함

alter database backup controlfile to '저장할 경로';


- Trouble Shooting -

ORA-00205 : 파라미터 파일에 적힌 컨트롤파일을 열 수 없음.
경로의 문제이거나, 실수로 파일을 지워졌을때 발생함.

ORA-00214 : 서로의 버전이 맞지 않음.
Version 번호가 큰 컨트롤 파일을 복사하여 버전이 낮은 컨트롤파일을 교체한다.









-- 작성중..
실습방법
백업
1 TRACE 파일 생성
2. SHUTDOWN IMMEDIATE
3. TRACE 파일 확인 NORESETLOGS 부분 SCRIPT 파일로 생성
4. bin 폴더 밑 생성
복구
5. 컨트롤파일 삭제
6. sql plus 에 붙어서 nomount 상태에서 스크립트 실행
7. 복구 완료. todo


컨트롤파일을 trace 파일로 만드는것은 컨트롤파일이 손상된 경우와 old control file 이라는 오류가 발생했을때에도 Trace File로 만들어서 복구하는대에 사용한다. todo

&
 
 

'Oracle > 백업 & 복구 & 장애' 카테고리의 다른 글

Tablespace와 Data File 관리  (1) 2012.01.25
[Oracle] Parameter File  (0) 2012.01.22
Cold Backup 과 Hot Backup  (0) 2011.10.25
[10g] Oracle Database Backup Tree 와 Recover [1]  (0) 2011.10.19
DROP TABLE PURGE, FLASHBACK TABLE  (0) 2011.09.29