Make a Real DBA ORACLE DBMS Architecture DBMS
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 DBMS의 두 구성 요소 • Software & Repository DBMS DB 김종근 이석창 engine 송호섭 박동진 문찬섭 Physical Disk Software Repository http: //www. shsvc. co. kr 5
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 Fast Processing? • Client Request Processing Server Machine Oracle Process Client Physical Memory http: //www. shsvc. co. kr DB Physical Disk 6
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 Fast Processing? • Cache & Processes Server Machine Oracle Process Client Oracle Process DB Data Cache Area Physical Memory http: //www. shsvc. co. kr Physical Disk 7
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 오라클의 두 구성 요소 • Instance and Database Server Machine Server Process Background Instance Database Process Client DB SGA System Global Area Physical Memory http: //www. shsvc. co. kr Physical Disk 8
Make a Real DBA ORACLE DBMS Architecture 메모리 구조 Instance 구성 요소 • SGA & Background Process Server Machine Instance Database SMON PMON Server Process Client LGWR SGA DBWR DB CKPT Physical Memory http: //www. shsvc. co. kr Physical Disk 9
Make a Real DBA ORACLE DBMS Architecture 메모리 구조 SGA 구조 • SGA(System Global Area) Shared Pool SHARED_POOL_SIZE Database Buffer Cache DB_BLOCK_SIZE DB_CACHE_SIZE http: //www. shsvc. co. kr Redo Log Buffer LOG_BUFFER 10
ORACLE DBMS Architecture Make a Real DBA 메모리 구조 Shared Pool • Dictionary Cache - 데이터베이스 딕셔너리 정보를 캐쉬하는 영역 - 딕셔너리 정보? Shared Pool Library Cache 데이터베이스에 대한 메타데이터 예) 사용자, 테이블, 인덱스 등에 대한 정보 Dictionary Cache http: //www. shsvc. co. kr 11
ORACLE DBMS Architecture Make a Real DBA 메모리 구조 Shared Pool • Library Cache - SQL 및 PL/SQL 코드 캐시 영역 - 같은 쿼리에 대한 재분석 회수를 줄임으로 해서 성능을 증대 Shared Pool Library Cache - SQL, P-CODE, E-PLAN을 같이 저장 - 사용상의 고려 사항 Dictionary Cache ① SELECT * FROM emp; ② Select * from emp; ※ 실행 결과는 같지만, Library Cache내에서는 다른 구문으로 판단 http: //www. shsvc. co. kr 12
Make a Real DBA ORACLE DBMS Architecture 메모리 구조 Database Buffer Cache • Reusable Buffer? Database Buffer Cache - LRU(Least Recently Used) Algorithm 최근에 사용된 것이 다시 사용될 확률이 높다! - 구현? LRU List라는 버퍼에 대한 리스트 구조를 관리 Reusable Buffer Search 3 2 4 1 MRU 5 5 LRU 3 2 4 1 1 5 http: //www. shsvc. co. kr 3 2 4 14
ORACLE DBMS Architecture Make a Real DBA 메모리 구조 Redo Log Buffer • Redo Log Buffer - DB Buffer Cache의 변경 사항(Redo Entry) 을 기록하는 영역 Redo Log Buffer - 순환 버퍼 구조로 사용 - 버퍼의 내용은 리두 로그 파일로 기록됨 http: //www. shsvc. co. kr 15
Make a Real DBA ORACLE DBMS Architecture 메모리 구조 SGA 구조 • SGA 관련 파라미터 설명 동적변경 SGA_MAX_SIZE SGA 전체 최대 사이즈(9 i) (이 범위 내에서 동적 리사이징 가능) N SHARED_POOL_SIZE Shared Pool의 사이즈 Y DB_CACHE_SIZE 표준 DB Buffer Cache 사이즈 Y DB_n. K_CACHE_SIZE 비표준 블록에 대한 Cache 사이즈(9 i) Y LOG_BUFFER Redo Log Buffer 사이즈 N LARGE_POOL_SIZE Large Pool 사이즈 Y JAVA_POOL_SIZE Java Pool 사이즈 N http: //www. shsvc. co. kr 16
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 Database 구성 요소 • Database 구성 파일 Parameter file Password file Control file Data file Redo log files Archived log files Alert file Trace file Database http: //www. shsvc. co. kr 17
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 기타 파일 • Parameter File $ORACLE_HOME/dbs/init<SID>. ora - 인스턴스의 성격을 결정하는 파라미터들을 파일로 만들어 놓은 파일 • Alert File BACKGROUND_DUMP_DEST/alert_<SID>. log - 오라클의 주 메시지 파일 • Trace File *_DUMP_DEST/ora_<PNAME>_<PID>. trc - 에러 로그 및 기타 추적 정보에 대한 상세 파일 • Password File $ORACLE_HOME/dbs/orapw<SID> - Sysdba 계정에 대한 패스워드 기록 파일 • Archive Log File LOG_ARCHIVE_DEST/* - Online Redo Log 파일을 백업한 파일 http: //www. shsvc. co. kr 19
Make a Real DBA ORACLE DBMS Architecture DBMS 구성요소 개요 ORACLE RDBMS Structure Instance Database Buffer Cache Redo Log Buffer Shared Pool etc PMON SMON CKPT DBWR etc LGWR Parameter file Password file Control file Data file Redo log files Archived log files Alert file Trace file Database http: //www. shsvc. co. kr 20
Make a Real DBA ORACLE DBMS Architecture SQL Statement Process SQL문 처리 구조(1) • Parsing – syntax check - semantic check - security check - execution planning Instance Shared Pool Database Buffer Cache. Redo Log Buffer SQL Server Process Client SELECT ename, job FROM emp; PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 21
Make a Real DBA ORACLE DBMS Architecture SQL Statement Process SQL문 처리 구조(2) • Execute(DML) Instance Shared Pool Database Buffer Cache. Redo Log Buffer SQL Result Server Process Client SELECT ename, job FROM emp; PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 22
Make a Real DBA ORACLE DBMS Architecture SQL Statement Process SQL문 처리 구조(3) • Fetch(SELECT) Instance Shared Pool Database Buffer Cache. Redo Log Buffer SQL Result Server Process Client SELECT ename, job FROM emp; PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 23
Make a Real DBA ORACLE DBMS Architecture SQL Statement Process SQL문 처리 구조 • Server Process Instance Shared Pool Database Buffer Cache. Redo Log Buffer SQL Result Server Process Client SELECT ename, job FROM emp; PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 24
Make a Real DBA ORACLE DBMS Architecture Background Process Log Writer Process LGWR 프로세스는 리두 로그 버퍼의 연속적Instance 일부분을 Shared Pool Database Buffer Cache. Redo Log 온라인 리두로그 파일로 기록하는 프로세스이다. Buffer • 커밋과 동시에 커밋된 데이터에 대해서는 무조건 기록한다. • 커밋이 SQL 일어나지 않더라도 다음의 경우에 로그 버퍼의 내용 Server 이 기록된다. Process Result - 매 3초마다. Client - 리두 로그 버퍼의 1/3이상이 기록되었을 때 - DBWR 프로세스가 변경된 블록을 기록하기 PMON SMON CKPT 전에(필요시) DBWR LGWR Control file Data file Redo log files Database http: //www. shsvc. co. kr 25
Make a Real DBA ORACLE DBMS Architecture Background Process Database Writer Process Instance Redo Log Pool Database Buffer Cache DBWR 프로세스는 DB 버퍼Shared 캐시의 더티 버퍼를 기록하는 프로세 Buffer 스이다. SQL • 서버 프로세스가 재사용 가능한 버퍼블럭을 찾을 수 없을 경우 Server • 체크포인트(checkpoint Process)를 진행시키기 위해 정기적으로 기록한 Result 다. Client PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 26
Make a Real DBA ORACLE DBMS Architecture Background Process Checkpoint Process CKPT 프로세는 모든 데이터 파일의 헤더 Instance 정보를 업데이트하고 컨트 Shared Pool정보를Database Buffer Cache. Redo Log 롤 파일에 체크포인트에 대한 상세 기록하는 프로세스이다. Buffer • 체크포인트가 발생하는 시점 - 로그SQL 스위치 발생 시 Server데이터베이스 종료시 - abort 옵션을 제외한 Process Result - ALTER SYSTEM CHECKPOINT; 커맨드에 의해 Client - 초기화 파라미터 설정값에 의한 시점에 PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 27
Make a Real DBA ORACLE DBMS Architecture Background Process System Monitor Process Shared Pool System Monitor Process Instance Database Buffer Cache. Redo Log Buffer • 인스턴스 시작시 인스턴스 복구를 수행한다. (필요시) • 사용되지 않는 임시 세그먼트의 정리작업을 수행한다. SQL Server • 딕셔너리 관리 테이블스페이스에 대해 free extent들의 병합작 Process Result 업을 수행한다. Client PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 28
Make a Real DBA ORACLE DBMS Architecture Background Process Monitor Process Instance Shared Pool Process Monitor Process Database Buffer Cache. Redo Log Buffer • 사용자 SQL 프로세스의 실패시 프로세스 복구를 수행한다. Server사용하던 자원에 대한 할당 해제 및 버퍼 캐 • 사용자 프로세스가 Process 시의 정리를 수행한다. Result Client PMON SMON Control file CKPT DBWR LGWR Data file Redo log files Database http: //www. shsvc. co. kr 29
Make a Real DBA ORACLE DBMS Architecture Background Process Archiver Process. Shared Pool Instance Database Buffer Cache. Redo Log Buffer ARCH 프로세스는 아카이브로그 모드로 운영하는 데이터베이스 에 대해SQL 온라인 리두 로그 파일을 지정한 저장소로 백업하는 프 Server 로세스이다. Process - 파일 아카이빙은 로그 스위치와 동시에 시작한다. Result Client PMON SMON Control file CKPT DBWR LGWR Data file Redo log files ARCH Archived log files Database http: //www. shsvc. co. kr 30
Make a Real DBA ORACLE DBMS Architecture ORACLE RDBMS Architecture Instance Shared Pool Database Buffer Cache. Redo Log Buffer SQL Server Process Result Client PMON SMON Control file CKPT DBWR LGWR ARCH Data file Redo log files Archived log files Database http: //www. shsvc. co. kr 31
Make a Real DBA ORACLE DBMS Architecture 데이터베이스 시작과 종료 SQL> startup ORACLE instance started. Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers Database mounted. Database opened. SQL> 30901048 729912 25165824 4194304 811008 bytes bytes P OPEN Data files and Log files open MOUNT U RT A ST Normal Operation Control file open NOMOUNT Instance create Init file open N W O D T U H S SHUTDOWN STARTUP NOMOUNT ALTER DATABASE MOUNT; http: //www. shsvc. co. kr ALTER DATABASE OPEN; 32
ORACLE DBMS Architecture Make a Real DBA 감사합니다 http: //www. shsvc. co. kr 33
ORACLE DBMS Architecture Make a Real DBA Q&A http: //www. shsvc. co. kr 34
- Slides: 34