출처: 서진수 강사님 oracle 취업 강좌, 오라클 관리실무 책, 기타 블로그, oracle 공식문서


◎ STARTUP 과정


①  startup 과정을 치면 오라클 프로세스는 먼저 Parameter File을 

    확인하여  nomount 단계(SGA가 공유메모리에 만들어 져있음) 

    가됨 , Alert Log 파일(서버시작 ~ 종료 장애기록) 을 확인

② NOMOUNT 단계 Control File(데이터 베이스 전체정보)  내용을 

   읽어서 Mount 단계로 이동 

③ Mount 단계에서 Data File을 확인 후 OPEN단계로 이동 

※만일 이상이 생기면(Instance Crash)경우 Instance Recovery 수행



◎ Startup & Shutdown 


□ 처음에 특정시점으로 키기 

startup nomount;                   STARTED


□ 켜져있는 상태에서 상태 바꾸기 

SYS>alter database mount;        MOUNTED


□ 켜져있는 상태에서 상태 바꾸기 

SYS>alter database open;            OPEN


※alter 명령어로 사용시에    nomount     mount →    open 순서로 가야지 

   nomount 에서 바로 open 으로가면 오류 발생 


□ 확인 하기

SYS>select status from v$instance;


□ 끄기 (shutdown + 옵션)


IMMEDIATE : commint/rollback 후 정상종료 (多)

ABORT: 전원 꺼버리기와 동일  (immediate 안될경우)

TRANSACTIONAL : 접속자가 commit , rollback 하면 나감 (少)

NORMAL: 접속하는 사람 나갈때 까지 기다림 (少)


SQL> shutdown immediate;      


※ shoutdown 의경우 특정 시점으로 못감 




◎ Parameter File 

  일종의 변수와 비슷한 개념, SGA의 설계도 역할

  nomount 단계로 가기위해 반드시 필요한 파일 

종류 & 특징


spfile: 서버프로서스가 관리 

         Binary파일          → 사람이 수정 할 수 없음 바꾸면 x

         spfileSID.ora        spfiletestdb.ora

         $ORACLE_HOME/dbs

         

pfile : DBA가 관리text 파일

        pfile

        initSID.ora           inittestdb.ora

        $ORACLE_HOME/dbs

        숨겨져있는 $ORACLE_BASE/admin/testdb/pfile

        init.ora.292015103153   


 ※우선순위는 spfile

 ※ spfile로 pfie 만들 수 있음  (★★★실습)

 ※ pfile 로 spfile 만들수 있음  (★★★실습)



◎ 경우의 수 

   ⑴ 기존의 spfile 없어서 원본 pfile을 복사해 오기

      ① $ORACLE_BASE/admin/testdb/pfile/init.ora.292015223143          

      ② $ORACLE_HOME/dbs/inittestdb.ora로 복사해오기

      ③ test 해보기 

   ⑵ pfile을 통해서 spfile 만들기 ($ORACLE_HOME/dbs에 pfile 존재)

   ⑶ spfile을 통해서 pfile 만들기 ($ORACLE_HOME/dbs에 spfile 존재)   


□ spfile 위치 

   $ORACLE_HOME/dbs             =        /app/oracle/product/11g/dbs

   spfile인 spfiletestdb.ora  가 있음

spfiletesetdb.ora 가 없을경우 에러 

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '

/app/oracle/product/11g/dbs/inittestdb.ora'

□ 원본 pfile 위치

$ORACLE_BASE/admin/testdb/pfile  = /app/oracle/admin/testdb/pfile

init.ora.292015103153        번호는 다를 수 있음 


□ 복사하기 pfile → spfile 위치로

 cp /app/oracle/admin/testdb/pfile/init.ora.292015103153 /

 /app/oracle/product/11g/dbs/inittestdb.ora


□ 기존에 있돈 pfile을 통해 spfile 만들기 

SYS>create spfile from pfile;


□ 기존에 있던 spfile을 통해 pfile 만들기

SYS> create pfile from spfile;


무조건 pfile로 하는 방법을 외워두고 create로 만드는게 편함 


※ 참고하기

□ 잠깐 나가기         SQL> ! 

□ SQL로 돌아가기     [oracle@server113 pfile]$ exit 

□ 스타트하기 위해선    inittestdb.ora         pfile

    spfiletesetdb.ora      spfile



◎ control File 

 - nomount단계에서 mount단계로 가기위한 파일

 - oracle 서버의 정보가 들어 있고 mount 단계부터 수시로 변화됨 

      →적어도 nomount 이하 단계에서 control 파일작업(복사)

 - control 파일은 다중화 해서 관리하는것이 중요

 - 다중화 하는데 spfile, pfile 를 사용하기 때문에 방법이 2가지  

 ※ 설정된 모든 control 파일의 내용은 같아야함

 ※ 최악의 경우 파라미터를 다시 복사해온 경우 가장 최근에 사용한 control file 로 설정을 바꾸어 주어야함 ....

◎ 파라미터 파일이 spfile 인경우

  
 ① 현재 spfile 사용중을 확인
  
 ② 현재 spfile에 설정된 contrlol 파일 위치 확인 
 
 ③ spfile의 경로를 바꾸어주기(기존파일은 못돌아가니 경로 추가를 추천) 
 
 ④ nomount 단계 이하에서 control 파일을 복사해주기  (shutdown immediate 한 뒤에)

 ⑤ startup 후에 테스트 하기

  
  

□ 현재 spfile 파라미터 상태 조회
SYS>show parameter spfile; 

□ 현재 Control 파일 조회하기 (2개가 되어 있음)

SYS>select name from v$controlfile;


□ spfile 내용 바꾸기 (control 파일의 설정 바꾸기)

SYS>alter system set control_files='/home/oracle/disk1/control01.ctl', 

 '/home/oracle/disk2/control02.ctl',      

 '/home/oracle/disk3/control03.ctl'  scope=spfile;


□ control 파일 위치

 /app/oracle/oradatta/testdb/control01.ctl

 /app/oracle/fast_recovery_area/testdb/control02.ctl


◎ 파라미터 파일이 pfile 인경우

 ① 현재 pfile 사용중을 확인

 ②현재 pfile에 설정된 control 파일을 확인 

 ③instance 종료 

 ④ pfile 파일에 vi로 경로를 추가를 해줌 

 ⑤ 추가된 경로대로 디렉토리 만들고 파일을 control 파일을 복사해줌 




spfile을 사용하여 만드세요

/data/disk1/control01.ctl

/data/disk2/control02.ctl

/data/disk3/control03.ctl


방법

① root권한으로 data/disk1, data/disk2 , data/disk3

② chown -R oracle.dba /data 를 통해서 권한을 바꾸어줌

③ 현재의 컨트롤 파일을 확인 후

  경로를 바꾸어 줌 

     alter system set control_files=

    '/data/disk1/control01.ctl'

'/data/disk2/control02.ctl'

'/data/disk3/control03.ctl' scope=spfile;

⑤ DB 를 종료 시킴 

⑥ 최근에 쓰던 control 파일을 위의 경로로 복사하기 



다시 초기화로 할때 파라미터 파일을다지우고 inittestdb.ora 복사한다음

   최신에 사용하던 control 파일만 2개의 원래경로에 넣어주면 끝  



mount 까지가는데 안되는경우

 최신에 사용한 control파일을 현제 경로설정된 곳에 복사하는 방법

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 파일과 새로운 파일의 조합의 경우 에러가 나는듯

이럴때 최신에 쓰던걸 그냥 복사해주면됨 


ORA-00214: control file '/app/oracle/oradata/testdb/control01.ctl' version 2042 inconsistent with file '/home/oracle/disk1/control01.ctl' version 2016





'ORACLE > Admin' 카테고리의 다른 글

7장 Tablespace & DataFile 관리  (0) 2015.04.01
6장 Redo Log 관리하기  (0) 2015.03.30
3장 Oracle Background Process  (0) 2015.03.27
2장 SQL 문장의 실행 원리  (0) 2015.03.26
1장 Oracle Architecture  (0) 2015.03.26
Posted by 히드라야
,