본문
  * 오라클 서버를 시작하려면 SYSDBA 권한을 가지고 있는 계정으로 로그인을 해야 함
  * 기본적으로 SYS 계정으로 접속한 후 아래와 같이 시작
   
SQL> STARTUP;
<오라클 서버의 시작 순서와 파일들>
 ▣ 오라클 서버를 시작하는 단계
  ① STARTUP을 하면 오라클 서버 프로세스는 Parameter File을 찾아 읽음
    * Parameter file┌ Pfile (정적 : 내용을 변경하려면 관리자가 직접(수동) 변경해야함)
                   └ Spfile (동적 : 관리자가 변경하지 않아도 서버프로세스가 자동으로 변경 )
  ② NOMOUNT단계에서 파라미터 파일을 읽고 저장된 파라미터 값들을 참고하여 인스턴스 생성
     (작업할 수 있는 메모리 공간이 확보됨)
  ③ Alert Log 파일을 로깅을 시작
   - Alert Log File : 인스턴스가 시작되어서 운영되고 종료될 때가지 중요한 내용들을 모두 저장하고 있음 
     ( 10g-$ORACLE_BASE/admin/SID/bdump/alert_SID.log
      11g-$ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log )   실시간 확인 : tail –f alert_SID.log
  ③ NOMOUNT 단계가 마치면 Control File의 내용을 읽고 MOUNT단계를 진행(DB의 이상 유무를 확인)
    * Control File의 위치는 Parameter File에 기록되어 있음
  ④ OPEN
    * Instance Crash(Instance에 문제)로 판단되면 OPEN 단계로 가기 전에 SMON이 Instance Recovery를 수행
       SMON이 복구할 때 복구 내용 ┌ Rodo Log file : SMON
                               └ Archive Log file : 관리자가 직접 recovery (Media recovery)
1. Parameter File(초기화 파라미터 파일)
 (1) Parameter(파라미터)란?
    : SGA를 생성할 때 각 SGA 구성요소 관련된 사항을 기록하고 있는 파일
| 항목 / 파일 | Pfile | Spfile | 
| 파일이 존재하는 기본 경로 | $ORACLE_HOME/dbs | |
| 파일 이름 | initSID.ora | spfileSID.ora | 
| 내용 변경 | 관리자(사람) | 서버 프로세스 | 
| 파일 형태 | Text(OS 편집기로 편집 가능) | Binary(OS 편집기로 편집 불가) | 
* Pfile과 Spfile이 둘다 존재할 경우 Spfile 내용만 사용, 정해진 디렉토리에 정해진 이름으로 존재해야 함
* 9i 버전부터 Spfile 등장, 기본 파라미터 파일이 Spfile
(2) 파라미터 파일의 내용 확인하기
 ▣ Spfile로부터 Pfile을 생성하는 방법
  ① SQL> create pfile from spfile;
  ② ]$ rm –rf spfileSID.ora          ← Spfile을 삭제
(3) 파라미터 파일의 내용 변경하기
- 9i 이후부터는 pfile을 사용하더라도 alter system set 명령을 이용하면 재부팅 없이 즉시 적용 가능(Dynamic SGA)
 ▣ Database Buffer Cache 값을 변경 시키는 예를 가지고 Spfile 내용을 변경하는 방법
  SYS> alter system set db_cache_size=30m scope=memory;
 ▣ Alter system set의 Scope에 올 수 있는 옵션
   ┌ Memory : Spfile의 내용은 변경하지 말고 현재 작동중인 인스턴스에만 적용(재부팅시 적용 X, 테스트 등의 목적)
   ├ Spfile : 현재 운영중인 인스턴스에는 적용하지 말고 Spfile의 내용만 변경(재부팅시 적용)
   └ Both : 기본 모드,  두 가지 모두에 적용
(4) 주요 파라미터들의 의미
(5) 10g 설치 후 변경해야 하는 파라미터들
(6) 11g 설치 후 변경해야 하는 파라미터들
2. 다양한 방법으로 Instance Open하기
  * DBA가 원하는 단계가지만 지정해서 Instance를 시작시킬 수 있다
  * 반드시 NOMOUNT → MOUNT → OPEN 순을 거쳐야 한다
 ▣ NOMOUNT 단계까지만 시작 후 나머지 단계 진행하기
   SYS> startup nomount;
   SYS> alter database mount;
   SYS> alter database open;
 ▣ MOUNT 단계까지만 시작 후 나머지 단계 진행하기
   SYS> startup mount;
   SYS> alter database open;
 ▣ 읽기전용인 상태로 OPEN하기 
   SYS> startup mount;
   SYS> alter database open read only;
         ⇒ SELECT 외에 모든 작업은 할 수 없음. 데이터 변경 모드로 변경하려면 Instance 재시작
 ▣ Restricted Mode(제한된 모드)로 OPEN하기 ⇒ 허가받은(권한이 있는) 사용자만 접속 가능
   SYS> startup restrict;
  * 현재 OPEN 되어있는 Instance를 Restricted Mode로 변경하려면
   SYS> alter system enable restricted session;
   SYS> alter system disable restricted session;
3. Oracle instance 종료하기
 * Instance를 종료하기 위해서는 SYSDBA 권한을 가지고 있어야 함
(1) Shutdown의 4가지 옵션 (이전에 접속되어 있던 사용자들을 어떻게 처리할것인지···)
  ① NORMAL (기본 옵션) : 스스로 접속을 종료할 때가지 기다렸다가 종료하는 옵션
     SYS> shutdown normal;   또는  shutdown;
  ② TRANSACTIONAL : 사용자가 수행중인 Transaction이 끝나는 시점에 강제로 종료하는 옵션
    * 사용자가 DML 작업을 수행중일 경우에는 기다리고 있다가 해당 트랜잭션을 종료하는 명령어(DDL, DCL, TCL)를 
       수행하면 접속을 강제로 종료시킨후 데이터를 저장하고 인스턴스를 종료
    * 사용자가 업데이트 수행 후 commit이나 rollback 명령어나 DDL, DCL 명령어를 수행하지 않으면 종료 X
  ③ IMMEDIATE : 즉시 접속 강제 종료
    * commit이 완료된 데이터를 Database Buffer Cache에서 찾아서 데이터 파일로 저장해주고 commit이 완료되지 않은 작업들은 모두 Rollback시킨 후 정상적으로 Instance 종료
  ④ ABORT : 즉시 접속 강제 종료
    * 사용자가 수행한 작업을 저장하지도 Rollback하지도 않고 즉시 Instance 종료
    * 비정상 종료, Instance Crash
    * ABORT 옵션으로 꺼진 Instance는 다시 Startup 될 때 SMON이 Instance Recovery를 수행
| 실습 1. | Parameter file 생성 및 관리하기 | 
| 
 [oracle@localhost ~]$ sqlplus / as sysdba Connected to: 
 SQL> shutdown immediate 
 SQL> startup 
 
 Step 1. 현재 Parameter file 확인하기 ⇒ Parameter file이 없음. [oracle@localhost dbs]$ ls 
 Step 2. 이미 만들어져 있는 원본 pfile 찾기 
 Step 3. 원본 pfile을 복사해 오기 
 Step 4. test Total System Global Area  422670336 bytes 
 | 
| 
 ▣ Parameter 파일 확인하기 (VALUE 값이 없으면 pfile, 있으면 spfile) 
 SQL> show parameter spfile; 
 SQL> show parameter pfile; 
 
 SQL> show parameter pfile; 
 | 
| 실습 2. | Pfile, Spfile 만들기 | 
| SQL> !ls /app/oracle/product/11g/dbs 
 SQL> create spfile from pfile; File created. 
 SQL> !ls /app/oracle/product/11g/dbs 
 
 SQL> !ls /app/oracle/product/11g/dbs 
 File created. 
 SQL> !ls /app/oracle/product/11g/dbs 
 SQL> !rm -rf /app/oracle/product/11g/dbs/spfiletestdb.ora SQL> !ls /app/oracle/product/11g/dbs | 
서진수,『오라클 관리 실무』, 생능출판사, 2013, pp.90-129
'Oracle > Oracle_Admin' 카테고리의 다른 글
| Chapter 06. Redo Log 관리하기 (0) | 2014.09.06 | 
|---|---|
| Chapter 05. Control File 관리하기 (0) | 2014.09.02 | 
| Chapter 03. Oracle Background Processes (0) | 2014.06.12 | 
| Chapter 02. SQL 문장의 실행 원리 (2) | 2014.06.12 | 
| Chapter 01. Oracle Architecture (0) | 2014.06.12 |