Presentation is loading. Please wait.

Presentation is loading. Please wait.

Oracle Architecture Reference - 이정규 강사님의 7월 BPAN 부산 강의 자료

Similar presentations


Presentation on theme: "Oracle Architecture Reference - 이정규 강사님의 7월 BPAN 부산 강의 자료"— Presentation transcript:

1 Oracle Architecture Reference - 이정규 강사님의 7월 BPAN 부산 강의 자료
Oracle Architecture Reference - 이정규 강사님의 7월 BPAN 부산 강의 자료 - Oracle8i Administrator’s Guide

2 SGA System Global Area System Global Area란?
◈ Oracle Server가 시작될 때 SGA는 메모리로 할당 되어 집니다. ◈ 사용 목적의 따라 오라클 파라미터 파일(init.ora)의 조정으로 SGA의 각 부분의 크기를 조절 할 수 있습니다. ◈ 여러명의 사용자가 동시에 오라클에 접속 할 경우 유저들 간에 SGA에 있는 데이터 들을 공유 합니다. ◈ SGA는 공유 풀(Shared Pool), 데이터베이스 버퍼캐쉬(DataBase Buffer Cache),  리두로그 버퍼(Redo Log Buffer) 이 세가지로 구성되어 있습니다. SGA Redo Log Buffer Shared SQL Area Database Buffer Cashe

3 Shared Pool System Global Area The Shared Pool Library Cache
◈ Shared Pool Contents - Text of the SQL or PL/SQL statement - Parsed form of the SQL or PL/SQL statement - Execution plan for the SQL or PL/SQL statements - Data dictionary cache containing rows of data dictionary information ◈ Library Cache - shared SQL area (공유 SQL영역) - private SQL area (전용 SQL영역) - PL/SQL procedures and package - control structures : lock and library cache handles ◈ Dictionary Cache - 데이터 베이스와 그 구조, 그리고 모든 사용자의 정보를 담고 있는 테이블과 뷰의 집합체 입니다 데이터 베이스 안에 있는 테이블들과 뷰들의 이름 - names and datatypes of columns in database tables - privileges of all Oracle users ◈ SHARED_POOL_SIZE Shared Pool Library Cache Shared SQL Area PL/SQL Procedures and Package for examples; Control Structures Locks Library Cache handles and so on ... Dictionary Cache for example: Character Set Network Security Attributes Runtime Memory :Reuse available

4 System Global Area Database Buffer Cache Shared Pool
◈ Size = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS ◈ DB_BLOCK_BUFFERS : Number of buffers defined by(격자의 숫자) ◈ DB_BLOCK_SIZE : 한번 정하면 절대로 못 바꿈(DB생성시 정함). ◈ Database 버퍼 캐시는 데이터 파일로부터 읽어 들인 데이터 블록의 복사본을 가지고 있습니다. ◈ 버퍼캐시에는 Dirty List와 LRU List가 있습니다. ◈ Dirty List에는 수정 되었지만 아직 디스크에 기록하지 않는 Dirty Buffer를 가지고 있습니다. ◈ LRU List에는 빈버퍼, 고정된 버퍼와 더티목록에 이동되지 않는Dirty Buffer를 가집니다. ◈ LRU 알고리즘 : 최근에 사용된 블록을 유지하기 위해 오래된 것을 제거

5 System Global Area Redo Log Buffer
◈ Size defined by LOG_BUFFER Parameter ◈ 리두 로그 버퍼는 Database의 변경 사항 정보를 유지하는 SGA에 있는 Circular(순환) 버퍼 입니다. ◈ 변경 사항(즉, 변경된 블록, 변경 위치, 새 값)을 기록한 리두 기록을 저장하고 있습니다. ◈ DB에서 발생한 모든 변화는 LGWR에 의해 리두 로그 파일에 저장 합니다. ◈ Used Sequentially(순차적으로 사용됨)

6 Program Global Area Program Global Area Server Process PGA
공유되지 않고 오로지 혼자서만 쓰는 공간 Is an area that is used by only one process ◈ Process global area라고도 합니다. ◈ 단일 프로세스에 대한 데이터 및 정보를 갖고 있는 메모리 영역. ◈ Not shared and not writable ◈ Sort Areas : 데이터를 소트하는 메모리 영역(SORT_AREA_SIZE) ◈ Session Information (세션 정보) ◈ Cursor state (커서 상태) ◈ Stack space (스택 공간) : containing the session variables(세션 변수를 포함함) ◈ PGA는 프로세스가 생성될 때 할당되며 프로세스가 종료될 때 해제됩니다.

7 Background Process 오라클 필수 프로세스 DBWR(Database Writer) LGWR(Log Writer)
◈ 버퍼 캐시에 있는 수정된(Dirty) 버퍼의 내용을 데이터 파일에 기록 합니다. ( write all dirty buffers to datafiles ) ◈ DBWR는 데이터베이스 버퍼 캐쉬로부터 데이터 파일로 더티 버퍼(dirty buffer)를 옮겨 적습니다. 이렇게 함으로써 데이터베이스 버퍼 캐쉬 내에 충분한 수의 프리 버퍼(free buffer)가 사용 가능 하게 됩니다. ☞ DBWR이 발생하는 이벤트 1) 더티 버퍼 수가 임계값에 도달 했을 때(The number of dirty buffers reaches a threshold value) ) 프로세스가 지정된 갯 수의 블록을 스캔 하고도 Free Buffer를 하나도 발견하지 못했을 때 ) 시간이 초과 했을 때 --> 3초 동안 작업이 중단 될 때(A time-out occurs) ) DBWR checkpoint occurs LGWR(Log Writer) ◈ 리두 로그 버퍼를 관리 합니다. ◈ 리두 로그 버퍼를 디스크에 있는 리두 로그 파일에 기록 합니다. ☞ LGWR프로세스에 의해 리두 로그 버퍼가 디스크에 저장되는 시점 1) 데이터베이스 커밋(commit)이 수행되었을 때. 2) 리두 로그 버퍼가 1/3이상 찼을 때 3) 체크 포인트에 의한 DBWR 프로세스가 수정된 버퍼를 디스크에 기록 할 때 4) When a timeout occurs(3 초마다)

8 Background Process 오라클 필수 프로세스 SMON(System Monitor)
◈ 시스템 모니터는 오라클 인스턴스를 관리 하는 프로세스 입니다. ☞ 역할 1) 오라클 인스턴스 fail시 인스턴스를 복구하는 역할을 합니다(Performs automatic instance recovery) 2) 데이터 파일의 빈 공간을 연결하여 하나의 큰 빈공간으로 만듭니다. (테이블 스페이스내 사용 가능한 영역 Merge) 3) 더 이상 사용하지 않는 임시 블록 세그먼트들을 재사용 할 수 있게 합니다.(임시 세그먼트 정리) PMON(Process Monitor) ◈ 오라클에 서버에서 사용되는 각 프로세스들을 감시하는 프로세스 입니다. ☞ 역할 1) 비정상 종료된 데이터베이스의 접속을 정리 합니다. (Cleans up abnormally terminated connection) 2) 정상적으로 작동하지 않는 프로세스들을 감시하여 종료 시키며, 비정상적으로 종료된 프로세스들에게 할당된 SGA 리소스를 재사용 가능하게 합니다. 3) 커밋되지 않은 트랜잭션을 롤백 시킵니다.(Rolls back uncommited transactions)

9 Background Process 그 밖의 프로세스 CKPT(Check Point) ARCH(Archiver)
◈ 모든 변경된 데이터베이스 버퍼를 디스크 내의 데이터 파일로 저장하는 것을 보장 합니다. ◈ 변화된 데이터 블록의 수, 또는 일정 시간을 두고 DBWR프로세스가 데이터베이스 버퍼(더티 버퍼)를 데이터 파일로 저장하도록 명령하는 일을 합니다. ◈ 체크포인트가 발생하면 데이터 파일과 컨트롤 파일의 헤더를 갱신 합니다 (Updates header of datafiles and control files at the end of checkpoint) ◈ is enabled by setting the parameter CHECKPOINT_PROCESS=TRUE ☞ 체크 포인트와 관련된 오라클 파라미터 - LOG_CHECKPOINT_TIMEOUT : 체크포인트가 발생할 시간 간격 설정(단위 :초) - LOC_CHECKPOINT_INTERVAL : 체크포인트가 발생할 리두 로그 파일의 블록수 지정 ☞ 체크포인트 발생시점 - log switch change log_checkpoint_interval - log_checkpoint_timeout shutdown tablespace offline ARCH(Archiver) ◈ 아카이버는 Online Redo Log File이 꽉차거나 DBA가 Alter system switch logfile의 명령어로 강제적으로 LOG SWITCH가 발생할 때 리두 로그 파일들을 지정된 저장장치로 저장하는 역할을 합니다. * LOG SWITCH : 리두 로그 그룹 간의 이동 ◈ Operates only when a log switch occurs ◈ Copies redo log files to tape or disk for media failure ◈ Is optional and is only needed when in ARCHIVELOG mode ◈ May write to a tape drive or to a disk

10 Background Process 그 밖의 프로세스 그 밖의 프로세스
◈ RECO(Reciver) 데이터베이스 복구시에 시작되는 프로세스 입니다. ◈ LCKn(Lock) - LOCK 프로세스 오라클 병렬 서버에만 적용되며, 오라클 병렬 서버에서 다수의 오라클 인스턴스 사이에서 Locking을 수행 합니다. ◈ Pnnn(Parallel Query) - 병렬 질의 오라클 병렬서버에서, 병렬 질의를 제공 합니다. ◈ SNPn(Shapshot Refresh) 자동으로 Shapshot Table을 갱신 할 때 사용 ◈ Snnn(Shared Server) - 공유 서버 Multi Threaded Server구성에서 여러 클라이언트 요청에 응답 합니다 ◈ Dnnn(Dispatcher) 다수의 사용자 프로세스가 서버프로세스를 공유하도록 하여 Multi Thread 구성을 지원합니다

11 User Process User Process ◈ 클라이언트에서 수행 됩니다.
◈ 사용자가 오라클 Application Program을 실행 시켰을 때 사용되는 프로세스 입니다. - Pro*C 와 같은 응용프로그램 - Oracle Enterprise Manager or SQL*Plus ◈ 사용자가 오라클 서버에 접속할 때마다 사용자 프로세스가 생성 됩니다. ◈ 사용자가 실행시킨 SQL문을 서버 프로세스에 전달하고, 그 결과를 서버 프로세스로부터 받는 역할을 수행 합니다 (Passes SQL to the server process and receives the results )

12 Server Process Server Process
◈ 서버에서 실행 됩니다.(Runs on the server machine ◈ 각 서버 프로세스는 사용자 프로세스를 하나씩 담당 합니다 각 서버 프로세스는 PGA(Program Global Area)라고 불리우는 메모리 영역을 사용합니다. ◈ 오라클 서버 프로세스는 사용자로부터 받은 요구사항(SQL문)을 처리 합니다. (Parce and execute SQL statements) ◈ Disk 상의 Datafile 에서 SGA의 Shared Database Buffer로 필요한 Data를 Read 합니다. (Read data blocks from disk into the shred database buffers of the SGA) ◈ 전달받은 SQL문을 Parse, 실행(Execute), 페치(Fetch) 작업을 통해 실행 시키는 역할을 합니다. ◈ Return the results of SQL statements to the user process ☞ Parse, Execute, Fetch 과정 ① Parse - SQL문 문법 검사(check syntax) 사용자 인증 및 권한 검사(security access) - 객체의 사용 가능 여부 검사 ② Execute - 파스 과정에서 만들어진 파스 트리로 원하는 데이터를 찾음 - 데이터를 찾은 후 실제 데이터 Read를 수행 하고, 필요할 경우 데이터 수정 합니다. (applies the parse tree to the data, perform a physical read and change) ③ Fetch - 데이터를 사용자 프로세스 에게 전달(Passes data to the user [only SELECT])

13 SGA 오라클 인스턴스 Oracle Instance Oracle Instance Shared Pool DB Buffer
Cache Redo Log Buffer 오라클 인스턴스 PMON SMON SNPn LCKn REDO Dnnn Pnnn CKPT ARCH LGWR DBWR ◈ Oracle Instance는 SGA와 Background Processes의 결합 입니다 ◈ Instance가 시작될 때 SGA의 Memory Buffers들이 할당되어지고 Background Process들이 시작 됩니다 ◈ 오라클 데이터베이스를 접속하는 수단 입니다. (Is a means to access an Oracle database) ◈ 항상 하나의 데이터베이스 만을 OPEN 합니다. (Always opens one and only one database) ◈ Database는 Instance에 의해서 Mount되어 집니다

14 Oracle Database Oracle Database Oracle Database 컨트롤 파일 데이터 파일 리두 로그 파일
◈ 오라클 데이터 파일(Data files), 컨트롤 파일(Control files), 리두 로그 파일(Redo log files)을 합해서 오라클 데이터베이스 라고 합니다. ◈ 데이터베이스 이름(DB_NAME)으로 식별 합니다. ◈ 데이터베이스 이름을 인스턴스의 이름과 다르게 짓는 것이 가능하지만 관리의 편리를 위해 같은 이름을 사용 할 것을 권장 합니다. init.ora - db_name = "oracle" - instance_name = oracle

15 Oracle Database 데이터 파일(Data File), 컨트롤 파일(Control File)
◈ Tables &Indexes들과 같은 Logical structure들을 물리적으로 Datafiles에 저장되는 파일 입니다. ◈ 데이터 파일은 생성시에 그 크기를 명시하고, 더 많은 저장 공간이 필요할 경우 그 크기를 확장할 수 있습니다. ◈ 데이터 파일은 오라클에 의해서 생성되고 삭제 해야 합니다. 운영체제 명령을 이용해서 사용자가 삭제 하거나 이동을 시켜서는 안됩니다 컨트롤 파일(Control File) ◈ 컨트롤 파일은 데이터베이스의 제어 정보를 가지고 있는 파일로 오라클 서버의 데이터베이스 이름이 컨트롤 파일에 저장 됩니다. ◈ 컨트롤 파일은 오라클 DB를 마운트 하고 Open하여 DB를 사용하는데 꼭 필요한 파일 입니다. ◈ 컨트롤 파일이 손상되면 오라클을 mount, open할 수 없으므로 적어도 두개 이상의 컨트롤 파일을 백업 받아서 다른 디스크에 저장해 놓는 것이 좋습니다

16 Oracle Database 리두 로그 파일(Redo Log File) 리두 로그 파일(Redo Log File)
◈ 리두 로그 파일은 데이터베이스에서 생긴 모든 변화를 기록 하는 파일 입니다 ◈ 리두 로그 파일은 데이터를 복구 하는데 사용 됩니다. ◈ SGA 내의 리두 로그 버퍼 캐쉬에 저장된 데이터들은 리두 로그 버퍼가 일정 수준 이상 채워지게 되면 LGWR에 의해서 리두 로그 파일로 저장 됩니다. ◈ 리두 로그 파일은 적어도 두개 이상의 그룹을 가지며, 한 그룹내의 각 맴버들은 모두 동일한 테이터를 가집니다. ◈ 리두 로그 파일을 구성하는데 1Group에 2개 이상의 Member를 동일 Machine 상에서 다른 Disk에 분리하여 구성하기 권장 합니다 REDO01.LOG REDO02.LOG REDO03.LOG Group 1 Member 2 Group 2 Member 2 Group 3 Member 2 REDO01b.LOG REDO02b.LOG REDO03b.LOG

17 Oracle Database 그 밖의 파일들 파라미터 파일(Parameter File)
◈ 파라미터 파일은 오파클을 시작하는데 필수적인 파라미터 들이 정의 되어 있으며, 오라클 인스턴스를 기동하기 위해서는 꼭 파라미터 파일을 읽어야 합니다. ◈ 일반적으로 init.ora파일로 저장 됩니다. ◈ Control file 의 위치와 이름을 가지고 있습니다. ◈ 오라클 파라미터 값을 조절해서 오라클 데이터베이스의 메모리 사이즈와 인스턴스 프로세스의 세팅을 조절합니다. Ex) db_block_buffers = 2048, shared_pool_size = , db_block_size = 8192 ◈ 파라미터의 정보를 보고 싶을 때는 v$parameter을 이용합니다. SVRMGR> SELECT name, value FROM v$parameter WHERE UPPER(name) LIKE '%DB%'; NAME VALUE dbwr_io_slaves db_file_direct_io_count db_block_buffers ◈ 파라미터 하나의 값을 볼 때는 SHOW PARAMETER 명령어를 이용 합니다. SVRMGR> SHOW PARAMETER shared_pool_size ; shared_pool_size string

18 Oracle Database 그 밖의 파일들 Alert File Trace file Password file
◈ 오라클 Instance가 실행중에 Error 발생시 messages은 Alert File에 쓰여 집니다 ◈ Alert File은 BACKGROUND_DUMP_DEST에 지정된 곳으로 쓰여 집니다 SVRMGR> SHOW PARAMETER background_dump_dest; NAME TYPE VALUE background_dump_dest string C:\Oracle\admin\oracle\bdump Trace file ◈ Server & Background process에 의해 발견된 Error정보는 Trace file로 쓰여 집니다· ◈ Trace File의 위치는 Background process에 의해 dump된 정보는 BACKGROUND_DUMP_DEST에 지정된 곳으로 쓰여지고 Server process에 의해 dump된 정보는 USER_DUMP_DEST에 지정된 곳으로 쓰여 집니다 SVRMGR> SHOW PARAMETER user_dump_dest; NAME TYPE VALUE user_dump_dest string C:\Oracle\admin\oracle\udump Password file ◈ 권한이 있는 데이터베이스 사용자를 인증하는데 사용됩니다

19 ① ④ ③ ② Oracle Database 오라클 데이터베이스 커밋(Commit) 과정 서버 프로세스 LGWR 사용자 프로세스
* System Change Number 트랜잭션이 커밋될 때마다 오라클 서버는 트랜잭션에 커밋 SCN(System Change Number)을 지정합니다. SCN은 데이터베이스 내에서 유일한 값이로 증가합니다. SCN을 사용함으로써 오라클 서버는 운영 체제의 날짜나 시간에 의존하지 않고 일관성 검사를 수행할 수 있습니다. Redo Log Buffer Shared SQL Area Database Buffer Cashe 서버 프로세스 LGWR 사용자 프로세스 컨트롤 파일 SQL>COMMIT; 데이터 파일 리두 로그 파일 1. 서버 프로세스는 SCN과 함께 커밋 기록을 리두 로그 버퍼에 위치 시킵니다. 2. LGWR은 모든 리두 로그 버퍼 엔트리와 커밋 기록을 리두 로그 파일에 연속적으로 옮겨 적습니다. 이후 오라클 서버는 실패하는 경우에도 변경 사항을 잃지 않게 됩니다. 3. 사용자에게 COMMIT이 완료되었다는 것을 알립니다. 4. 서버 프로세스는 트랜잭션이 완료되었으며 자원 잠금(lock)이 해제되었다는 것을 나타내는 정보를 기록 합니다.

20 SGA 오라클 인스턴스 Oracle Architecture 오라클 아키텍쳐 Shared Pool DB Buffer Cache
Redo Log Buffer 오라클 인스턴스 PMON SMON SNPn LCKn REDO Dnnn Pnnn CKPT ARCH LGWR DBWR 데이터 파일 리두 로그 파일 컨트롤 파일 서버 프로세스 사용자 프로세스 파라미터 파일 패스워드 파일 PGA


Download ppt "Oracle Architecture Reference - 이정규 강사님의 7월 BPAN 부산 강의 자료"

Similar presentations


Ads by Google