오라클 서버의 시작 순서와 파일들
1 2 3
STARTUP → NOMOUNT → MOUNT → OPEN
Parameter Control Redo log file
file file Data file
오라클 서버 프로세스는 NOMOUNT 단계에서 Parameter file 을 읽고 그 파일 안에 저장되어 있는 파라미터 값들을 참고하여 인스턴스를 생성한다.
인스턴스는 SGA와 Background Process 들로 구성되어 있으므로
NOMOUNT 단계에서 RAM 에 인스턴스가 생성되어 작업할 수 있는 메모리 공간이 확보가 되는 것이다.
그리고 Alert Log 파일을 열어 로깅을 시작한다.
Alert Log 파일은 인스턴스가 시작되어 운영되고 종료될 때까지 중요한 내용들을 모두 저장하고 있는 파일이다.
만약 서버에서 어떤 장애가 발생하거나 문제의 징후가 보일 경우 이 파일의 내용을 자세히 보면 답을 찾을 수있는 경우가 있다.
Alert Log 파일은
10g 일 경우 $ORACLE_BASE/admin/SID/bdump/alert_SID.log 파일로 존재하고
11g 일 경우 $ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log 로 존재한다.
tail -f 로 확인.
1. Parameter File (초기화 파라미터 파일)
(1) Parameter(파라미터) 란?
원하는 값을 오라클에게 전해주기 위해 사용하는 변수로 정적 파라미터 파일인 Pfile 과, Spfile 이 있다.
항목 /파일 Pfile Spfile
파일 기본경로 $ORACLE_HOME/dbs (두 파일 공통)
파일 이름 initSID.ora SpfileSID.ora
내용 변경 관리자 (사람) 서버 프로세스
파일 형태 Text (OS 편집기로 편집가능) Binary (OS 편집기로 편집 안됨)
RAC 같은 특수한 환경에서는 SID 는 Instance name 으로 동작하기 때문에 DB 이름과 확실하게 구분되지만
일반적으로 Single 환경일 경우 SID와 DB 이름을 혼용해서 사용한다.
(2) 파라미터 파일의 내용 확인하기
9i 이후 버전부터는 Spfile 이 기본 파라미터 파일로 설치가 되고 Pfile 은 사라진다.
주의사항 절대 이런 바이너리 파일은 사용자가 수정하면 안된다.
Pfile 과 Spfile 이 둘 다 존재할 경우 Spfile 만 사용한다.
(3) 파라미터 파일의 내용 변경하기
9i 부터는 Dynamic SGA 기능이 도입되어 pfile 을 사용하더라도 ALTER SYSTEM SET 명령을 이용하면 재부팅 없이 즉시 적용시킬 수 있게 되었다.
예) ALTER SYSTEM SET db_cache_size=30m Scope=Memory ;
Scope =
Memory 옵션은 Spfile 의 내용은 변경하지 말고 현재 작동 중인 인스턴스에만 적용하라는 의미로 재부팅하면 다시 Spfile의 값으로 돌아간다.
Spfile 옵션은 현재 운영중인 인스턴스에는 적용하지 말고 Spfile 의 내용만 변경하라는 뜻으로 재부팅 후부터 적용한다.
Both 옵션은 의미 그대로 두 가지 모두에 적용한다는 뜻으로 현재 운영 중인 인스턴스에도 즉시 적용하고 Spfile 에도 적용하여 재부팅 후에도 유지되게 하라는 뜻이다. Scope 옵션을 사용하지 않을 경우는 Both 가 기본모드이다.
2. 다양한 방법으로 Instance 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 ;
- Restricted Mode (제한된 모드) 로 OPEN 하기
허가받은 사용자만 접속할 수 있도록 하는 모드
SYS> STARTUP RESTRICT ;
현재 오픈되어 있는 Instance 를 Restricted Mode 로 변경하려면
SYS> ALTER SYSTEM ENABLE RESTRICTED SESSION ;
SYS> ALTER SYSTEM DISABLE RESTRICTED SESSION ;
3. Oracle Instance 종료하기
(1) Shutdown 의 4가지 옵션
1) NORMAL (기본옵션)
접속되어 있는 사용자들이 스스로 접속을 종료할 때까지 기다렸다가 종료하는 옵션
2) TRANSACTIONAL
사용자가 수행중인 트랜잭션이 끝나는 시점에 종료.
DML 작업을 수행 중에는 기다리고 있다가 해당 트랜잭션을 종료하는 명령어(DDL, DCL, TCL)을 수행하면
접속을 강제로 종료시킨 후 데이터를 저장하고 Instance 를 종료한다.
3) IMMEDIATE
사용자의 행동에 상관없이 즉시 접속을 강제 종료시킨다.
COMMIT 완료된 데이터는 저장, COMMIT 이 완료되지 않은 작업은 모두 ROLLBACK 시킨 후 정상적으로 Instance를 종료한다.
4) ABORT (IMMEDIATE 가 안될때만 쓴다.)
즉시 접속 강제 종료. 서버가 정전된 것과 같은 상황으로 비정상 종료이고 다른말로 Instance Crash 라고 부른다.
이렇게 꺼진 Instance는 다시 Startup 될 때 SMON이 Instance Recovery 를 수행해서 복구해야 한다.
운영중인 서버에 치명적인 위험을 줄 수 있는 명령어이므로 아주 주의해야 하는 옵션이다.
실습1. Parameter file 생성 및 관리하기
모든 Parameter file (Pfile, Spfile) 이 삭제 되어 없는 경우 Oracle 설치시에 기본값을 가지고 만들어지는 최초 parameter file 을 활용해서 pfile 을 생성하는 실습
$ cd $ORACLE_HOME/dbs/
$ ls
기본적으로 Spfile 이 존재한다.
파일을 삭제하겠다.
$ rm -fr spfiletestdb.ora
$ exit
SYS> startup
에러 발생
현재 parameter file 확인하기
$ cd $ORACLE_HOME/dbs
$ ls
이미 만들어져 있는 원본 pfile 찾기
$ ls $ORACLE_BASE/admin/testdb/pfile
원본 pfile 복사해오기
$ cp /app/oracle/admin/testdb/pfile/init.ora.104201314135 inittestdb.ora
테스트
$ exit
SYS> startup
현재 spfile을 사용했는지 pfile 을 사용했는지 알고 싶으면
SQL> show parameter spfile ;
SQL> show parameter pfile ;
value 부분의 값이 없으면 Pfile이고 값이 있으면 Spfile
실습2. Pfile, Spfile 만들기
Pfile만 있을 경우 Pfile 을 사용하여 Spfile 생성하는 것과
Spfile 만 있을 경우 Spfile 을 사용하여 Pfile 을 생성하는 방법
SQL> !ls /app/oracle/product/11g/dbs
pfile 로부터 spfile을 생성
SQL> create spfile from pfile ;
SQL> !ls /app/oracle/product/11g/dbs
SQL> !rm -fr /app/oracle/product/11g/dbs/inittestdb.ora
SQL> !ls /app/oracle/product/11g/dbs
spfile 로부터 pfile 을 생성
SQL> create pfile from spfile ;
SQL> !ls /app/oracle/product/11g/dbs
pfile 과 spfile 이 모두 있을 경우 spfile 만 사용되므로 pfile을 사용하려면 spfile 을 삭제하거나 이름을 변경해야 한다.
SQL> !rm -f /app/oracle/product/11g/dbs/spfiletestdb.ora
SQL> !ls /app/oracle/product/11g/dbs
실습3. Startup / shutdown 실습하기
$ sqlplus / as sysdba
SYS> shutdown immediate ;
SYS> startup nomount ;
SYS> select status from v$instance ;
SYS> alter database mount ;
SYS> select status from v$instance ;
SYS> alter database open ;
SYS> select status from v$instance ;
SYS> shutdown mount ;
SYS> shutdown nomount ;
SYS> shutdown immediate ;
shutdown 은 nomount, mount 등의 옵션을 사용할 수 없다.