<오라클 서버의 시작 순서와 파일들>
※ Alter Log 파일은 10g 의 경우 $ORACLE_BASE/admin/SID/bdump/alert_SID.log
11g 의 경우 $ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log로 존재
1. Parameter File ( 초기화 파라미터 파일 )
(1) 파라미터란 ?
- 묵시적 파라미터 : 관리자가 지정하지 않을 경우 자동으로 기본 값을 가지는 파라미터
- 명시적 파라미터 : 관리자가 지정해 주어야만 값을 가지는 파라미터
항목/파일 |
Pfile |
Spfile |
파일이 존재하는 기본경로 |
$ORACLE_HOME/dbs |
|
파일 이름 |
initSID.ora |
spfileSID.ora |
내용 변경 |
관리자 ( 사람 ) |
서버 프로세스 |
파일 형태 |
Text ( OS 편집기로 편집가능 ) |
Binary ( OS 편집기로 편집 불가 ) |
정적 파라미터 | 동적 파라미터 |
8i 버전 까지 pfile 이 기본 파라미터 파일
9i 버전 부터 spfile 이 기본 파라미터 파일 ( 그래도 여전히 pfile 사용 가능 )
(2) 파라미터 파일의 내용 확인하기
- spfile 은 파일 형태가 바이너리 파일이라서 사람이 내용을 수정할 수 없고, 프로그램이나 프로세스가 내용을 변경
※ 절대 바이너리파일은 사용자가 수정하면 안됨
- pfile 과 spfile 이 동시에 존재할 경우 spfile 내용만 사용함
(3) 파라미터 파일의 내용 변경하기
- pfile 을 수정하고 적용하려면 재시작 해야 함
- 9i 부터 Dynamic SGA 기능이 도입되어 pfile 을 사용하더라도 alter system set 명령을 사용하면 재부팅 없이 즉시적용가능 ( 그러나 D.B를 재부팅하면 os편집기로 수정하지 않았기 때문에 원래의 값으로 돌아가게 됨 )
- spfile 은 편집기로 내용을 수정할 수 없기 때문에 alter system set 명령을 사용하여 수정
사용 예 ) Database Buffer Cache 값을 30M로 변경하는 예
SYS> ALTER SYSTEM SET db_cache_size=30m SCOPE = Memory ;
위의 예에서 SCOPE 부분에 올 수 있는 옵션에는 Memory, Spfile, Both 세가지가 있다.
Memory = Spfile의 내용은 변경하지 말고 현재 작동 중인 인스턴스에만 적용하라는 의미. 재부팅하면 다시 Spfile에 적혀있는 값으로 되돌아감. 테스트 등의 목적으로 일시적으로 사용할때
Spfile = 현재 운영중인 인스턴스에는 적용하지 말고 Spfile 의 내용만 변경하라는 뜻.
재부팅 후부터 적용하겠다는 의미
Both = 현재운영중인 인스턴스에도 즉시 적용하고, spfile 에도 적용하여 재부팅 후에도 유지되게 하라는 뜻
만약 scope 옵션을 사용하지 않을 경우 both 가 기본 모드
오라클 설치후 사용하기전에 반드시 파라미터 파일을 변경해줘야 함
2. 다양한 방법으로 Instance Open 하기
앞서 살펴본 순서와 같이 오라클 시작 순서는 NOMOUNT -> MOUNT -> OPEN 3단계가 있다.
* 사용중인 파일은 절대로 이동 및 복사를 하면 안됨 ( pfile 은 예외 )
- 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 하기 ( 허가 받은 사용자만 접속할 수 있도록 하는 mode )
SYS> STARTUP RESTRICT ;
Restricted Session이란 권한이 있어야만 접속 가능
- 현재 OPEN 되어 있는 Instance 를 Restricted Mode로 변경
SYS> ALTER SYSTEM ENABLE RESTRICTED SESSION ;
SYS> ALTER SYSTEM DISABLE RESTRICTED SESSION ;
3. Oracle Instance 종료하기
(1) Shutdown 의 4가지 옵션
1. NORMAL ( 기본 옵션 )
- 명령어를 실행하였을 때 접속중인 사용자들이 모두 접속을 종료할 때까지 기다렸다가 종료하는 옵션,
사용자가 접속을 종료하지 않으면 Instance는 종료되지 않음
2. TRANSACTIONAL
- 사용자 스스로 접속종료를 기다려 주지않고 강제로 접속을 중단시킨 후 Instance를 종료
- 접속을 중단시키는 시점은 사용자가 수행중인 Transaction이 끝나는 시점
- Transaction 이 끝나는 시점 : 사용자가 트랜잭션을 종료시키는 명령어 (DML, DCL, TCL) 을 수행할 때
3. IMMEDIATE
- 사용자의 행동에 상관없이 즉시 접속을 강제 종료
- 접속이 종료되는 시점까지 사용자가 수행한 작업중 Commit 이 완료된 데이터를 D.B 버퍼캐쉬에서 찾아 데이터 파일로 저장해 주고, Commit 이 되지않은 작업들은 모두 Rollback 시킨후 Instance 종료
4. ABORT
- immediate 옵션과 같이 즉시 접속을 강제 종료, 다른점은 수행한 작업을 저장하지도,Rollback 시키지도않고 종료
- 비정상 종료 즉 Instance Crash라고 부르며 이렇게 꺼진 Instance는 다시 Startup 될때 SMON이 Instance Recovery를 수행해서 복구해야 함
실습 1. Parameter file 생성 및 관리
모든 Parameter file 이 삭제되어 없을 경우 Oracle 설치시 기본값을 가지고 만들어지는 최초 parameter file 을 활용해 pfile생성
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> !
[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ls
hc_DBA0.dat init.ora orapwtestdb spfiletestdb.ora hc_testdb.dat 1KTESTDB snapcf_testdb.f
위와 같이 9i 이후부터 오라클 설치시 기본적으로 spfile 이 존재
[oracle@localhost dbs]$ rm -rf spfiletestdb.ora <- spfile 을 삭제하는 장애를 만듬
[oracle@localhost dbs]$ exit
SQL> startup <- 초기화 파라미터 파일을 삭제했기 때문에 에러가 생김
ORA-01078 : failure in processing system parameters
LRM-00109 : could not open parameter file '/app/oracle/product/11g/dbs/inittestdb.ora'
위와 같이 초기화 파라미터 파일이 삭제되서 생기는 에러는 아래 방법과 같이 해결해주면 된다
1. 현재 parameter file 확인 - parameter 파일이 없는것을 확인할 수 있다.
[oracle@localhost dbs]$ ls
hc_testdb.dat init.ora initdw.ora 1KTESTDB orapwtestdb
2. 이미 만들어져 있는 원본 pfile 찾기
[oracle@localhost ~]$ cd $ORACLE_bASE/admin/testdb/pfile
[oracle@localhost pfile]$ ls
init.ora.8262014183816 <- 원본 pfile, 뒤에 숫자는 server 마다 다름
3. 원본 pfile 복사
[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ cp $ORACLE_BASE/admin/testdb/pfile/init.ora.8262014183816 inittestdb.ora
[oracle@localhost dbs]$ ls
hc_testdb.dat init.ora initdw.ora 1KTESTDB orapwtestdb inittestdb.ora <-pfile
4. test
[oracle@localhost dbs]$ exit
SQL> startup pfile 을 복사해 왔기 때문에 제대로 startup 되는것을 볼 수 있다
※현재 pfile을 사용했는지 spfile 을 사용했는지 알고 싶을때
SQL> show parameter spfile; 했을때 VALUE 부분에 값이 있으면 spfile 이고 없으면 pfile 이다.
실습 2. pfile, spfile 만들기
pfile 이 있고 spfile 이 없을 때
SQL> create spfile from pfile ;
spfile 이 있고 pfile 이 없을 때
SQL> create pfile from spfile ;
'오라클 > 관리 실무' 카테고리의 다른 글
Oracle 저장구조 (0) | 2014.10.23 |
---|---|
Tablespace 와 Data File 관리하기 (2) | 2014.10.21 |
Redo Log 관리하기 (0) | 2014.10.20 |
Control File 관리하기 (0) | 2014.10.20 |
Oracle Background Process (0) | 2014.10.17 |
SQL 문장의 실행 원리 (0) | 2014.10.17 |
Oracle Architecture (2) | 2014.10.17 |