출처: 서진수 강사님 oracle 취업 강좌, oracle백업 과 복구 교재. oracle concepts 문서



[참조할것]

select name from v$controlfile;

select name from v$datafile;

select member  from $logfile;


/app/oracle/diag/rdbms/testdb/testdb/trace/alert_testdb.log

tail -f alert_testdb.log

archive log list;

:%s/\/app\/oracle/\/data\/imsy




◎Parameter & Control 장애 요약




◎ Parameter File 에

□ Parameter File 없을때 만들어주기 

◎ 절차 

① 이미 만들어 져있는 원본을 복사해온다

② Control 파일에 대한 경로는 설정 되어 있지 않으니 vi 로 편집해 줄것  

③ startup   

         ◎ 알아야 할 내용

              ①  파라미터 조회하기 show parmeter spfile

②  PFILE 통해 SPFILE 만들기: create spfile from pfile

③  SPFILE 통새 PFILE 만들기 : create pfile from spfile 

④  startup 으로 특정시점으로 가기 : startup nomount

⑤  특정 시점에서 상위 변화된 시점으로 이동하기: alter database mount



◎ Control File 에러

□ parameter 경로와 실제 control file 경로가 다른 경우 

[상황: parameter 경로는 3개인데 실제 파일은 2개인 경우]

nomount 상태 

ORA-00205: error in identifying control file, check alert log for more info


→ 그냥 파라미터내용에 경로를 지우거나, control을 추가해주면됨 



□ 다중화된 control File 의 버젼이 다른경우  


[상황: control01.ctl 의 버젼이 오래된 것이고, 나머지는 최신일때 나는 오류]

nomount 상태

ORA-00214: control file '/app/oracle/oradata/testdb/control02.ctl' version 2868

inconsistent with file '/app/oracle/oradata/testdb/control01.ctl' version 2837


→ control01.ctl 최신으로 바꾸어 주면됨 




 전부 Old Control File 이거나 전부 삭제되었을 경우 

 


◎ 원인 

       mount 상태에서 Control File의 Scn 정보가 Datafile의 Scn 보다 낮을 경우의 에러 

       (실제 파일보다 기록된 정보가 예전정보일때 발생됨 )


       → Datafile을 참조해서 Control File을 재생성 


[오류 화면]

ORA-01122: database file 1 failed verification check

ORA-01110: data file 1: '/app/oracle/oradata/testdb/system01.dbf'

ORA-01207: file is more recent than control file - old control file


◎ 복구 절차 ★★

              ① 안맞는 Control을 통해서 Control 생성 SQL을 만들어줌 (Mount 상태) 

② DB 정상종료 

③ Control 생성 SQL 안에 내용을 수정(공백이 있으면 안됨)

④ Shutdown 상태에서 Control 생성 SQL을 실행 

⑤ Database Open

④-1 : Redo Log는 손상이 없는 경우 :   noresetlogs

④-2 : Redo Log는 손상이 있는 경우 :  resetlogs



 ◎ Mount 상태에서 Open 방법 ★★

  ① norestlogs: Datafile, Redo log의 경로를 참조해서 만들어줌 (디폴트 설정)

  ② resetlogs:    Redo log 까지 고장이난 경우, 전부 다시 만들어줌

         

[상황 backup 된 control File(오래된)을 전부 원래로 옮겨놓을때 ] 


alter database backup controlfile to trace as '/home/oracle/test/re11.sql';

shutdown immediate;

vi re11.sql

1,58d

29,.d



@/home/oracle/test/re11.sql                    컨트롤 파일을 다시 만들어 주고 

alter database open;


[상황 backup 된 control File(오래된)을 전부 원래로 옮겨놓을때 + Redo log도 1파일 없음]


alter database backup controlfile to trace as '/home/oracle/test/re12.sql';

shutdown immediate;


@./test/re12.sql

alter database open resetlogs;



※ 결론은 무조건 mount는 올려야 하기 때문에 기존의 @re00.sql을 사용 

   예전에 control File을 사용하든지 할것 


[만일 alter database open resetlogs 를 잘못 해서 alter database open]

ERROR at line 1:
ORA-01190: control file or data file 1 is from before the last RESETLOGS
ORA-01110: data file 1: '/app/oracle/oradata/testdb/system01.dbf'



[연습 문제]


① mkdir /data/imsy

② cp /app/oracle/oradata/testdb/*.dbf     /data/imsy

③ rm /app/oracle/oradata/testdb/*


/data/imsy 디렉토리 아레에 데이터 파일을 사용해서 DB를 OPEN 시키기 

datafile, redo log File, control file 의 경로 모두 /data/imsy 로 바꾸기 




현재 상태를 확인한다.


① nomunt 면 control 파일 확보 해서 mount로 올려야함 , pfile을 에 내용을 확인 경로대로 설정

② mount 상태면 alter 해서 sql 파일을 만들어 준다. , DB를 끈다 

③ sql 파일을 변경(주석 공백 제거)해준다 그냥 resetlogs 로 하면 Redo log File 날라감

④ DB를 끈상태에서 @sql를 실행해준다 

⑤ alter open 해준다. 

















'ORACLE > Back & Recovery' 카테고리의 다른 글

6장 Datafile 복구하기 (물리적 복구)  (0) 2015.04.16
5장 Log Miner 확용 & Redo log 장애  (0) 2015.04.15
3장 BackUP  (0) 2015.04.13
2장 Archive 모드  (0) 2015.04.13
1장 Recover 원리  (0) 2015.04.13
Posted by 히드라야
,