본문 바로가기
oracle/[Admin] 이론

[이론] chapter 04. Oracle 시작하기 & 종료하기

by #moonyz 2014. 10. 20.

- SYSDBA 권한을 가지고 있는 계정으로 로그인 한 후 시작

- SYS 계정(sysdba 권한을 가지고 있는 기본 계정)으로 접속한 후 STARTUP 

ORACLE $  sqlplus sys/oracle as sysdba

SQL> startup



① STARTUP 

- 오라클 서버 프로세스가 파라미터 파일을 찾아서 읽는다.

② NOMOUNT

- 파라미터 파일을 참고하여 그 파일 안에 저장되어있는 파라미터 값들을 참고하여 인스턴스 생성

- 인스턴스 = SGA + Background process

- RAM에 인스턴스가 생성되어 작업할수 있는 메모리 공간 확보

- alter log 파일을 열어서 로깅 시작

10g : $ORACLE_BASE/admin/SID/bdump/alter_SID.log

11g : $ORACLE_BASE/diag/rdbms/SID/SID/trace/alter_SID.log

- 실시간 변경 내역 조회 $ tail -f 

③ MOUNT

- control file의 내용을 읽고 mount 단계 진행 (control file 위치는 파라미터 파일에 기록)

- database의 이상유무 확인 후 이상이 없으면 OPEN 단계로 진행

- Instance crash 상태가 확인 되면 SMON이 instance recovery 수행 (복구내용 Redo Log File)

- Redo Log File에 복구내용이 없으면 Media Recovery 수행 (관리자가 직접 복구 수행 )

④ OPEN






1. Parameter File (초기화 파라미터)

(1) 파라미터 란?

- 프로그래밍에서 사용하는 일종의 변수와 비슷한 개념

- pfile : 정적 파라미터 파일, 수동, 8i 버전까지 기본 파라미터파일

- spfile : 동적 파라미터 파일, 자동, 9i 버전부터 기본 파라미터 파일, 그러나 pfile도 사용가능


명시적 파라미터 값 : 관리자가 수동으로 지정

묵시적 파라미터 값 : 관리자가 지정하지 않을경우 자동으로 기본값을 가지는 파라미터


 항목/파일

pfile

spfile 

파일이 존재하는 경로 

$ORACLE_HOME/dbs 

파일이름

initSID.ora 

SpfileSID.ora 

내용 변경

관리자(사람) 

서버 프로세스 

파일 형태 

text (OS 편집기로 편집가능) 

binary (OS 편집기로 편집 불가)

※ 유닉스는 대소문자 구분

※ SID명을 testdb로 지정했다면 각각 파라미터 파일이름은 inittestdb.ora/Spfiletestdb.ora

※ SID = Site IDentifier (사이트 구분자)


(2) 파라미터 파일 내용 확인

① spfile 

- 이너리 파일 >> 사용자가 수정하면 절대 안됨!!!!!!!!

- pfile과 spfile이 둘다 존재할 경우 spfile 내용만 사용한다.

- $ vi $ORACLE_HOME/dbs/spfiletestdb.ora


② pfile

- 9i 버전부터는 spfile만 있기 때문에 pfile 수동으로 생성후 확인

- pfile과 spfile 둘다 존재할 경우 spfile 내용만 사용



(3) 파라미터 파일 내용 변경하기

[pfile]

- pfile의 경우 OS 편집기 등으로 관리자가 해당 파라미터 파일 내용을 수정&저장 후 변경사항은 다음 시작부터 적용되는데,

- 9i 버전 이후부터는 Dynamic SGA 기능이 도입되어 pfile도 alter system set 명령을 이용하면 재부팅 없이 즉시 적용 가능

- 그러나 alter system set 명령으로 pfile의 내용은 변경할수 없기 때문에 DB재시작 후에도 적용하기 위해서는 사용자가 직접 수정.


[spfile]

- spfile은 사람이 내용을 수정할수 없음.

- 내용을 수정하고자 한다면 alter system set 명령으로 서버 프로세스에게 변경요청

- 예) SYS> ALTER SYSTEM SET db_cache_size=30m scope=memory; --DB cache size를 30M로 변경


① Memory : spfile의 내용은 변경하지 않고 현재 작동중인 인스턴스에만 적용, 재부팅시 다시 spfile에 적힌 값으로 돌아감.

② Spfile : 현재 운영중인 인스턴에는 적용하지 않고, spfile의 내용만 변경 (현재는 적용 X 재부팅 후부터 적용)

③ Both : 두 가지 모두에 적용, 현재운영중인 인스턴스에 즉시 적용, spfile에도 적용하여 재부팅후에도 유지 (default)



※ 오라클 설치후 파라미터 변경 필수 !!

(4) 주요 파라미터들의 의미

- 오라클 관리실무 p.98 참고

(5) 10g 설치 후 변경해야 하는 파라미터들

- 오라클 관리실무 p.110 참고

(6) 11g 설치 후 변경해야 하는 파라미터들

     - 오라클 관리실무 p.118 참고





2. 다양한 방법으로 instance open 하기

- 사용중인 파일은 절대로 이동 및 복사를 하면 안된다 (파라미터 파일 중에 pfile은 예외)

- 단계를 시작할 때는 반드시 NOMOUNT -> MOUNT -> OPEN 단계를 거쳐야 한다.

- 원하는 단계까지 시작 후 나머지 단계를 진행하려면 ALTER DATABASE 명령어 사용.


① NOMOUNT 단계까지만 시작한 후 나머지 단계 진행하기

SYS> STARTUP NOMOUNT;

SYS> ALTER DATABASE MOUNT;

SYS> ALTER DATABASE OPEN;


② MOUNT 단계까지 시작한 후 나머지 단계 진행하기

SYS> STARTUP MOUNT;

SYS> ALTER DATABASE OPEN;


③ 읽기 전용 상태로 OPEN 하기 --select 외의 모든 작업 불가

SYS> STARTUP MOUNT;

SYS> ALTER DATABASE OPEN READ ONLY;


※ read only 모드로 open 후에 다시 데이터 변경 모드로 변경하고 싶을 경우 instance 재시작


④ Restricted Mode로 OPEN (제한된 모드)

- Read Only 모드는 데이터를 변경할수 없기 때문에 불편

- 허가 받은 사용자만 접속하여 데이터의 생성이나 수정 등을 할수 있는 모드


SYS> STARTUP RESTRICT; --제한모드로 OPNE 하기

SYS> ALTER SYSTEM ENABLE RESTRICTED SESSION; --현재 open된 상태에서 restrict mode로 변경, restricted session 권한 필요

SYS> ALTER SYSTEM DISABLE RESTRICTED SESSION;



3. Oracle 종료하기

- instance를 종료하기 위해서는 sysdba 권한 필요

- sysdba권한을 가진 sys사용자로 로그인 하여 shutdown 명령어 수행


ORACLE $  sqlplus sys/oracle as sysdba

SQL> shutdown immediate;


[SHUTDOWN의 4가지 옵션]
① NOMAL (기본옵션)
- SYS> shutdown nomal;
- shutdown 명령전에 접속되어 있던 사용자가 있을 경우 해당 사용자들이 스스로 접속을 종료할 때까지 기다렸다가 종료
- 사용자들이 스스로 접속을 종료하지 않으면 인스턴스 종료 불가능

② TRANSACTIONAL
- SYS> shutdown transactional;
- 사용자가 스스로 접속종료할때까지 기다려 주지 않고 강제로 접속 중단 (사용자가 수행중이 트랜잭션이 끝나는 시점)
- DDL, DCL, TCL (해당 트랜잭션을 종료하는 명령어)를 수행하면 접속을 강제로 종료시킨후 데이터 저장하고 인스턴스 종료
- commit이나 rollback, DDL, DCL을 수행하지 않으면 인스턴스 종료 불가능

③ IMMEDIATE
- SYS> shutdown immediatel;
- 사용자의 행동에 상관없이 즉시 접속을 강제 종료
- 사용자가 수행한 작업중에 commit이 완료된 데이터는 DB Buffer cache에서 찾아서 데이터 파일로 저장
- 사용자가 수행한 작업중에 commit이 완료되지 않은 데이터는 모두 Rollback 시킨후 정상적으로 인스턴스 종료

④ ABORT
- SYS> shutdown abort;
- 즉시 접속을 강제 종료
- 사용자가 수행한 작업을 저장하지도 Rollback 하지도 않고 그냥 즉시 인스턴스 종료
- 운영중인 서버에 치명적인 위험을 줄수 있는 명령어


댓글