Oracle/ORACLE 용어사전

Admin 용어사전

에몽이ㅋ 2012. 1. 17. 09:40
ver. 120117.0930
수업시간에 언급된 그대로 적습니다.
(검색방법 : 해당 용어의 첫글자+***로 검색)

TODO : tablespace관련용어(admin 5일차)

A***
---------------------------------------------------------------------------------------- 






B***
---------------------------------------------------------------------------------------- 
Background process : maintains and enforces relationships between physical and memory structures
   DBWn, LGWR, PMON, SMON, CKPT가 필수로 구성되고,
   ARCn, LMDn, RECO, CJQ0, LMON, Snnn, Dnnn, Pnnn, LCKn, QMNn 이 optional이다.

Block : DB와 메모리를 왔다갔다 하는데 데이터를 옮기는 통같은 개념( 여기서 1m떨어진 곳에 연필1000개를 옮기고 싶은데, 하나씩 옮기느냐, 10개들이 통을 사용해서 100번 옮기느냐, 100개들이 통을 사용해서 10번 옮기느냐 등등 )
   block size가 무작정 크다고 좋지 않은 이유 : 메모리낭비




C***
---------------------------------------------------------------------------------------- 
Change Vector : Redolog Buffer에 저장되는 변경사항( 'Execute'에서 DML에서의 execute참조 )

CKPT(Checkpoint) : Background process중 하나로 checkpoint신호를 생성하는 얘 (http://www.oracleclub.com/lecture/1892 참조 )

Consistent Read(=Read Consistency, C.R., 읽기일관성) : 한 사용자가 자료를 변경하고 확정짓지 않은 상황에서 다른 사용자가 그 자료를 읽었을 때, 변경된 자료가 읽히지 않고, 변경되기 전 자료가 읽혀지는 것을 말한다.

Control File ( http://www.oracleclub.com/lecture/1089http://gyh214.tistory.com/71 참조 )
  - 데이터베이스의 현재상태를 정의하고, 무결성을 유지
  - MOUNT상태까지 올라가려면 필요한 파일
  - DB의 구조(Structure)를 포함하는 조그마한 바이너리 파일 입니다.
  - 오라클이 사용하며, DBA도 변경 할 수 없습니다.
  - 데이타베이스의 구조변경이나 변경사항이 있을 때 자동으로 업데이트 됩니다.
  - 모든 데이터파일, 로그 파일의 정보(경로, 이름 등)를 갖고 있습니다.
  - 컨트롤 파일은 오라클 DB를 마운트하고, 오픈하여 사용하는데 꼭 필요한 파일 입니다.
  - 컨트롤 파일이 손상되면 오라클을 mount, open 할 수 없으므로 적어도 두 개 이상의 컨트롤 파일을 백업 받아서 다른 디스크에 저장해 놓는 것이 좋습니다
  - 복구시 필요한 동기화(Synchronization)정보를 저장 합니다.
 
   * 컨트롤 파일에 기록되는 내용
      - 데이타베이스의 이름과 식별자
      - 데이타파일의 위치. 온라인 리두로그 파일 위치 (OPEN상태까지 가려면 필요한 파일)
      - 현재 로그 시퀀스 번호
      - 테이블스페이스의 이름
      - 체크포인트 정보
      - 현재까지의 로그 기록
      - 백업정보


D***
---------------------------------------------------------------------------------------- 
Data Dictionary( http://gyh214.tistory.com/71 참조 )
* oracle database의 중심
* Read-only tables과 views로 구성
   종류
      1) Base tables : stores description(설명) of the database
      2) Data dictionary views : base table의 단순화버전
   내용
      * database의 logical, physical structures
      * 객체의 정의, 공간할당, Integrity constraints (무결성 제약)
      * Users, Roles, Privileges (권한)
      * Auditing (감사 ;  http://www.oracleclub.com/lecture/1861 )
   주요 사용목적
      * 사용자, 스키마객체, 데이터베이스의 구조 들의 정보를 찾는데 사용
 
Data Dictionary Cache(Dictionary Cache, Row Cache) : SGA안에서 Shared Pool안에서 두가지 종류의 Cache중 하나, 많이 쓰는 Dictionary를 빨리 가져가 쓰기 위해서 저장하는 공간 ( Dictionary 의 나머지는 DB Cache에 저장되어 있다. )
(http://www.oracleclub.com/lecture/1888 참조 )

Database : 일반적으로 Disk에 해당하는 것을 oracle에서는 Database라고 한다.

Database Buffer Cache(줄여서 DB Cache) : SGA안의 메모리 공간으로 디스크에서 원하는 자료블록을 찾아서 DB Cache에 저장한다.( http://blog.naver.com/salinokl/60148612551 ) 참조
   parameter :
      DB_BLOCK_SIZE ; 블럭사이즈 결정(data file의 블럭사이즈와 DB Cache의 블럭사이즈를 동일하게 만들어줌)
      DB_CACHE_SIZE ;
      DB_KEEP_CACHE_SIZE ;
      DB_RECYCLE_CACHE_SIZE ;

DBWn : DBWR이 여러개 모인것

DBWR : background process의 하나로 DB Cache의 내용을 datafile에 저장해 주는 얘(http://www.oracleclub.com/lecture/1892 참조 )
   발생시기(언제 파일에 내려쓰느냐?) : checkpoint발생시, dirty buffers이 threshold에 도달했을때(일반적으로 DB Cache의 1/3이 dirty일때),
            free buffer가 없을때, timeout 발생시 (일반적으로 3초),
            RAC ping request is made, Tablespace OFFLINE,
            Tablespace READ ONLY, Table DROP or TRUNCATE,
            Tablespace BEGIN BACKUP

DCL(제어어) : grant, revoke 

DDL(Data Definition Language) : create, alter, truncate, drop(데이터의 구조와 관련) 

Dedicated Server(줄여서 데디서버 라고도 한다) : Server Process의 종류 중 하나로 User Process가 Server Process에 접속하게 되면 새로운 Server Process를 만들어서 1:1 방식으로 운영되는 서버
   장점 : Server Process의 다른 방식인 Shared Server에 비해 관리가 쉬움
   단점 : 메모리 사용량이 크다

Dirty Buffer :  commit되었지만 checkpoint를 만나지 못해 아직 DBWR을 통해 database file에 기록되지 못한 버퍼, DB Cache안에 존재하는 3가지의 버퍼(Pinned, Dirty, Free) 중 하나.(insert이후 commit된 것들 등) 
   * 새로운 자료가 DB Cache에 들어와야 되는데 dirty buffer가 임계값에(통상적으로 db cache의 1/3) 도달해서 저장하지 못하게 되면, 이 dirty buffer를 free buffer로 변경하기 위해 checkpoint를 발생시켜 database file에 내려쓰게 되고, 내려쓴 부분의 buffer는 free buffer가 되어 자료를 받아들일 수 있게 된다.

DML(Data Manipulate Language)
: update, insert, delete, merge(데이터의 내용과 관련)

Dynamic Performance Views : Performance Views부분 참조

E***
---------------------------------------------------------------------------------------- 
Execute(실행)
select 에서의 execute
: 디스크에 있는 자료블럭을 메모리의 DB Cache로 올려주는 것
DML 에서의 execute :
   Update의 경우 ; 디스크에서 자료블럭을 찾아서 DB Cache로 올리고
      1. Redolog Buffer에 원래값, 바꿀값를 저장한다(이 원래값, 바꿀값을 Change Vector라 한다)
      2. Rollback을 대비해서 Undo에 원래 값을 저장한다.
      3. DB Cache의 자료를 바꿀 값으로 변경한다.
   Insert의 경우 : update와 동일하고 Redolog Buffer의 Change Vector가 (위치주소, 바꿀값)이다.
   Delete의 경우 : update와 동일하고 Redolog Buffer에 Deleted Row가 저장된다.
   주의사항 : commit하지 않아도 DB Cache에는 자료가 변했고, 이 상태에서 다른 사용자가 해당행을 읽게되면 DB Cache가 아닌 Undo에서 자료를 읽어와서 보여주게 된다. 이것을 C.R.(Consistent Read),읽기일관성이라 한다.


F***
---------------------------------------------------------------------------------------- 
Fetch(인출) : 'DB Cache'에 올라온 블럭 안의 내용 중(일반적으로 8Kb(한글로 약 4000글자)) 원하는 데이터를 정확히 찾아내는 것

Free buffer : 새로운 자료를 받아들일 수 있는 버퍼 ( Dirty buffer 부분 참조하세요 )



G***
---------------------------------------------------------------------------------------- 





H***
---------------------------------------------------------------------------------------- 
Hard Parse : Parse단계에서 Soft Parse수행 후 원하는 실행계획 검색이 실패했을 때, Optimizer가 실행계획을 직접 힘들게 짜는 것




I***
---------------------------------------------------------------------------------------- 
Instance(인스턴스) : 일반적으로 메모리라고 부르는 것을 oracle에서는 Instance라고 한다. SGA와 Background process(PMON, SMON, etc)로 구성이 되어 있다.

Instance Crash : 서버의 비정상종료

Instance Recovery : Instance Crash 이후에 Dirty Database를 Clean Database로 조절하기 위해서 수행하는 작업(SMON이 수행)



J***
---------------------------------------------------------------------------------------- 





K***
---------------------------------------------------------------------------------------- 





L***
---------------------------------------------------------------------------------------- 
Large Pool : SGA의 optional area중 하나( parameter : LARGE_POOL_SIZE ; size )
   사용이유 : relives the burden placed on the Shared Pool
   무엇을 위해 사용하나?(Used for) :
      1. Backup and restore operations or RMAN
      2. Parallel execution message buffers
      3. Session memory(UGA) for the Shared Server
      4. I/O server processes
 
LGWR(=Log Writer) : background process의 하나로 Redolog Buff의 내용을 Redo Log file에 저장하는 얘
(http://www.oracleclub.com/lecture/1892 참조 )
   발생시기 : commit, redolog가 1/3찼을때,
          when there is 1MB of redo, every three seconds,
          Before DBWn writes

Library Cache : SGA안의 Shared Pool안에서 두가지 종류의 Cache중 하나(http://www.oracleclub.com/lecture/1888 참조 )
   most recently used SQL, PL/SQL statement, 실행계획이 저장됨,
   LRU algorithm에 의해서 관리(least recently used 최저 사용 빈도녀석이 밀려나는 것 )
   Shared SQL area, Shared PL/SQL area, 실행계획, Parse Code로 구성

Listener(리스너) : DB서버에 '최초접속'할 때 거치는 곳(DB서버의 경비실 격), 최초접속이 아니면 쿼리를 수행할때 리스너를 통하지 않고 바로 DB서버의 Server Process에 쿼리를 전달한다.

LRU(Least Recently Used) :  어떤 공간에 자료를 넣을때 만약 공간이 꽉찼을때 이용하는 알고리즘, 최저사용빈도자료를 뺴고 새로운 자료를 삽입   ( oracle에서의 LRU http://blog.naver.com/kmymk?Redirect=Log&logNo=110082791389  참조 )


M***
---------------------------------------------------------------------------------------- 





N***
---------------------------------------------------------------------------------------- 





O***
---------------------------------------------------------------------------------------- 





P***
---------------------------------------------------------------------------------------- 
Parameter : C언어에서의 변수와 동일한 의미

Parameter files : DB가 NOMOUNT status로 가기 위해서 필요한 파일로, instance가 시작되기 위해서 필요한 특정값들을 포함한다.
   종류 : PFILE, SPFILE(http://gyh214.tistory.com/70 , http://www.oracleclub.com/lecture/1860 참조 )
   * 내용변경시 재부팅하면 적용됨, (9i 부터는 dynamic하기때문에 즉시 변경도 가능하지만, 기본적으로 파일을 변경하게 되면 다음 부팅때 적용이 됨 )
   PFILE : oracle 8i이전 버젼에서 사용되던 parameter file, vi editor로 수정가능하다.
      위치 : $ORACLE_HOME/dbs/initSID.ora (SID : DB이름 )
      생성방법 : SQL> create pfile from spfile;    or   
           cp $ORACLE_BASE/admin/SID(db name)/pfile/init.ora.03928381028(임의의숫자) $ORACLE_HOME/dbs/initSID.ora
   SPFILE : oracle 9i이후 버전에서 추가된 parameter file(기본파일, $ORACLE_HOME/dbs/에 spfile, pfile 둘다 존재 시 spfile적용)
      위치 : $ORACLE_HOME/dbs/spfileSID.ora ( SID : DB이름 )
      * 특징 : vi editor로 변경 불가능, ALTER SYSTEM으로 내용 변경(변경방법은 위 참조링크를 참조하세용)


Parse(구문분석)
  select, DML에서의 Parse
    ;  2단계가 수행된다. 첫번째, 검사(문법, 권한, 의미검사), 두번째, 실행계획생성(Soft Parse, Hard Parse 실행), 궁극적인 목적은 실행계획 생성
 

Parse Code : Library Cache에 저장된 실행계획으로 Soft Parse을 하기 위해 저장된다.

Performance Views(Dynamic Performance Views)
   * 현재 데이터베이스의 활동을 기록,
 실시간 업데이트 됩니다.
   * used to monitor and tune the database, Owned by SYS user
   이름 : V$ 로 시작됨
   종류 : V$FIXED_TABLE안에 기록되어 있음.
 
PFILE : Parameter files중 PFILE부분 참조

PGA(Program Global Area) : 하나의 단일 프로세스에 대한 데이터와 제어 정보를 가지고 있는 메모리 공간으로 USER PROCESS가 Oracle Database에 접속하고 Session이 생성될 때 Oracle에 의해 할당 됩니다.
(http://www.oracleclub.com/lecture/1855 참조 )

Pinned Buffer : 현재 사용하고 있는 버퍼, DB Cache안에 존재하는 3가지의 버퍼(Pinned, Dirty, Free) 중 하나. (insert이후 commit안된 것들 등등)

PMON(Process Monitor) : 오라클에 서버에서 사용되는 각 프로세스들을 감시하는 프로세스.
   비정상 종료된 데이터베이스의 접속을 정리,
   정상적으로 작동하지 않는 프로세스들을 감시하여 종료 시키며,
   비정상적으로 종료된 프로세스들에게 할당된 리소스를 재사용 가능하게 함( http://www.oracleclub.com/lecture/1080 참조 )
   * PMON의 rollback은 datafile에서 해당되는 블럭을 가져와 DB Cache에 블럭째로 덮어쓰기하는 방식으로 정상적인 rollback보다 부하가 상당히 크다.
      



Q***
---------------------------------------------------------------------------------------- 





R***
---------------------------------------------------------------------------------------- 
Read Consistency : Consistent Read와 동일

Redolog Buffer(=Log Buffer)
: SGA의 구성요소 중 하나로 존재이유는 나중에 복구하기 위해 존재함. DB가 바뀌는건 여기에 모조리 저장된다.(DML, DDL, 등등, select의 경우 읽어오는 것이므로 Redolog Buffer를 이용할 필요가 없다) ( http://www.oracleclub.com/lecture/1888 참조 ), 통상 redolog buffer의 용량은 굉장히 작으므로(20mb?) 꽉차면 복구에 문제가 있을 수 있다. 이 현상을 방지하기 위해 오라클에서는 수시로 파일로 저장 후 디스크에 저장하고 redolog buffer을 비운다., 특이하게도 log buffer는 dynamic하지 않아서 size변경을 하려면 재시작을 해야한다.
   parameter : LOG_BUFFER ; determines size of redolog buffer



S***
---------------------------------------------------------------------------------------- 
Server Process : SQL>에서 수행하는 모든 문장을 오라클에게 전달해서 실행해줌(http://www.oracleclub.com/lecture/1891 참조 )
   ; 2가지 방식의 서버가 있는데 1) Dedicated Server,  2) Shared Server

Session(세션) : Server Process가 Instance에 접속하면 Session Created

SPFILE : Parameter files중 SPFILE부분 참조

SGA(System Global Area) : DB서버 하나당 1개가 존재하고, 모든 process가 공유하는 메모리,
       Shared Pool, Database Buffer Cache, Redolog Buffer가 항상 필수로 구성되고,
       Large Pool, Java Pool는 필요에 따라 SGA안에 메모리를 할당한다.)
   parameter SGA_MAX_SIZE로 총 한도가 결정되고, 9i이후로는 dynamic하다(재부팅없이 설정변경가능)
   단위 : granule (10g기준으로 SGA_MAX_SIZE가 1GB 초과시 16MB, 이하면 4MB)

Shared Server(=MTS(Multi Thread Server)) : Server Process의 종류 중 하나로 하나의 Server Process를 여러 User Process가 공유해서 사용하는 것(반대 : Dedicated Server)
   장점 : 메모리 사용량이 적다
   단점 : Server Process가 죽으면 모든 User Process가 Rollback된다. (관리가 힘들다)

Shared Pool : Most recently executed SQL statements, Most recently used data definitions가 저장되고
   Library Cache, Data Dictionary Cache로 구성된다.
   parameter : SHARED_POOL_SIZE
 

SMON : background process의 하나로 서버의 Instance Crash이후 Instance Recovery시 활동하는 process ( 서버가 꺼지고 나서 그 다음에 뒷처리하는 얘, http://www.oracleclub.com/lecture/1892 참조 )

Soft Parse : Parse단계에서 실행되는 것으로 Hard Parse하기 전에 Library Cache에 이전에 만든 실행계획이 있는지 없는지 검색하는 행위




T***
---------------------------------------------------------------------------------------- 
TCL : commit, rollback

tnsnames.ora : Client에서 DB서버로 찾아갈때 어떻게 하면 찾아가는지 적혀있는 파일(ip, port등등이 적혀있다.)




U***
---------------------------------------------------------------------------------------- 
User Process : 사용자가 오라클 Application Program을 실행 시켰을 때 사용되는 프로세스 (sqlplus, todd, orance등등)
   (http://www.oracleclub.com/lecture/1891 참조 )




V***
---------------------------------------------------------------------------------------- 





W***
---------------------------------------------------------------------------------------- 
WAL( =write-ahead-log, write-ahead protocol) : '선로그기법' 참조




X***
---------------------------------------------------------------------------------------- 





Y***
---------------------------------------------------------------------------------------- 





Z***
---------------------------------------------------------------------------------------- 





ㄱ***
---------------------------------------------------------------------------------------- 






ㄴ***
---------------------------------------------------------------------------------------- 





ㄷ***
---------------------------------------------------------------------------------------- 





ㄹ***
---------------------------------------------------------------------------------------- 





ㅁ***
---------------------------------------------------------------------------------------- 





ㅂ***
---------------------------------------------------------------------------------------- 





ㅅ***
---------------------------------------------------------------------------------------- 
선로그기법(write-ahead protocol, write-ahead-log)
DBWn이 database file에 DB Cache의 내용을 내려적기 전에 항상 LGWR을 이용해서 redolog을 먼저 redolog file에 저장한 후 database file에 저장하는 방식(log먼저 저장한다고 해서 선로그기법,참조:docs.oracle.com/cd/B10500_01/server.920/a96524/c09procs.htm )
---> database file에 내려적을때(DBWR)는 해당block통째로 file에 저장하는 반면, redolog file에 내려적을때(LGWR)는 변경된 내용만 저장하므로 DBWR보다 속도가 훨씬 빠르다.
---> 혹시나 database file에 db cache의 내용을 내려적다가 DB가 죽었을때를 대비해서 안정성을 위해 먼저 저장이 빨리되는 redo log파일을 먼저 저장하게 된다.




ㅇ***
---------------------------------------------------------------------------------------- 





ㅈ***
---------------------------------------------------------------------------------------- 





ㅊ***
---------------------------------------------------------------------------------------- 
최초접속 : User Process가 꺼졌다가 켜져서 DB서버에 최초로 접속하는 접속




ㅋ***
---------------------------------------------------------------------------------------- 





ㅌ***
---------------------------------------------------------------------------------------- 





ㅍ***
---------------------------------------------------------------------------------------- 





ㅎ***
---------------------------------------------------------------------------------------- 





'Oracle > ORACLE 용어사전' 카테고리의 다른 글

Transaction  (2) 2014.06.16