| |
1. Basic Oracle Architecture
1) Oracle Instance
; SGA(System Global Area) + Backgroud Process(DBWR,LGWR,SMON,PMON,CKPT)
2) Memory Structures
- Data buffer cache : data file 로 부터 읽어진 내용을 저장하는 memory 공간.
- Log buffer : redo log file에 기록되기 전의 data 저장 공간.
- Large pool : UGA 대용으로 사용, RMAN 사용시 I/O buffer로 사용.
- Shared pool : 현재까지 사용된 SQL 문장을 다른 user도 사용가능하게 shared 한다.
3) Backgroud Processes
- Database wirter(DBWR) : data buffer cache로 부터 data file에 dirty buffer를 기록한다.
- Log writer(LGWR) : log buffer로 부터 redo log file에 data를 기록한다.
- System monitor(SMON) : instance recovery를 자동으로 수행한다.
- Process monitor(PMON) : 비정상적으로 종료된 user process에 의해 생성된 server process를
clean한다.
- Checkpoint(CKPT) : 현재 redo log와 checkpoint 번호로 data file과 control file의
header를 동기화한다.
- Archiver(ARCH) : redo log 를 backup 한다.
4) User Process
; SQL*Plus, svrmgr, forms, reports, Enterprise Manager 등을 실행 시켰을때 생성된다.
5) Server Process
; User process가 던진 질의에 대한 응답을 해준다.
6) Oracle Database
- Data files : data 물리적 저장 공간. binary file
- Redo logs : recovery를 위한 저장공간. binary file
- Control files : database의 물리적 구조 저장 공간. binary file
- Parameter file : instance config를 할 수 있는 file. text file
- Password file : user가 database를 start, stop, recover 할 수 있는 정보를 갖고 있는 공간.
binary file
- Archive logs : redo log file 의 backup file. binary file
7) Dynamic Views
- V$SGA : shared pool, log buffer, data buffer cache 에 대한 instance size 정보
- V$INSTANCE : instance mode, instance name, startup time, host name 등의 instance 에
대한 정보
- V$PROCESS : instance에 의해 생성된 background 와 server process 정보
- V$DATABASE : database 에대한 정보.(database name, database identifier, creation date,
control file creation date 와 time, last database checkpoint...)
- V$DATAFILE : data file 의 location 과 name 에 대한 정보.
2. ARCH process
; log가 switch 되었을때 log를 다른곳에 copy하는 일을 한다.
- ARCH process와 ARCHIVE_LOG_MODE가 조화를 이룰때 적절한 사용법이다.
- LOG_ARCHIVER_DEST parameter : copy할때 디렉토리 위치 지정.
3. CKPT process
; 현재 redo log와 checkpoint 번호로 data file과 control file의 header를 동기화한다.
* Checkpoint는 언제 발생하나?
- log switch 시
- shutdown abort를 제외한 shutdown 시
- ALTER SYSTEM CHECKPOINT command를 DBA가 날렸을 때
- backup 이 실행될 때
- LOG_CHECKPOINT_TIMEOUT parameter에서 설정한 값이 수행될 때.
- LOG_CHECKPOINT_INTERVAL parameter에서 설정한 값이 수행될 때.
4. Data files
; system과 user data를 저장하고 있는 file.
commit 된 data를 갖고 있지만, uncommit된 data 도 갖고 있을 수 있다.
* uncommit 된 정보를 저장하는 예
update data를 commit 하지 않고 장시간 wait상태에 있으면, 다른 user들이 계속 update를
하고 있기 때문에 buffer가 밀려서 결국에는 data file에 쓰게된다.
(이때, lock 정보를 갖고 저장된다.)
5. Configuring Tablespaces
; tablespace는 2개 이상의 data file을 갖는다.
- SYSTEM : system 과 user data가 같은 tablespace를 갖고 있다면 backup과 recovery하기가 더
복잡해진다.
- TEMPORARY : sort정보를 갖고 있다. 복구시 recovery하는 것보다, create하는게 더 좋다.
- ROLLBACK SEGMENTS
- READ ONLY DATA : backuup 시간을 줄일 수 있다.
- HIGHLY VOLATILE DATA : recover 시간을 줄일 수 있다.
- INDEX DATA : recovery하는 것보다, create하는게 더 좋다.
6. Multiplexed Redo Log Files
; log file 을 동시에 여러개에 기록하기 때문에 file 하나가 깨져도 정상적으로 작동된다.
* Dynamic Views
- V$LOG : group no, log sequence no, group size, mirror갯수, status(CURRENT or INACTIVE),
ckpt change no..
- V$LOGFILE : name, status(STALE or INVALID), log file member
- V$LOG_HISTORY : control file의 log history 정보
7. Control file 속성
- 모든 database file 과 log file은 id를 필요로 한다.
- database name을 저장한다.
- checkpoint 와 log sequence 정보를 갖고 있다.
- 2개 이상의 control file은 각각 다른 disk에 저장하는게 좋다.
- database의 Timestamp를 저장한다.
- Recovery Manager(RMAN) 사용시 backup 정보를 갖고 있다.
|