DBMS ์ํคํ ์ฒ
- DBMS๋ ์ ์ด๋ ํ๋ ์ด์์ ์ธ์คํด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ์ (์์ฉ)๋ฐ์ดํฐ์ ์์คํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฌผ๋ฆฌ ํ์ผ๋ค๋ก ๊ตฌ์ฑ
- ์ธ์คํด์ค๋ DBMS ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ์์คํ ๋ฆฌ์์ค(memory, process)๋ก ๊ตฌ์ฑ
** process: ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํ ๋จ์, process ๋ด์ ์ฌ๋ฌ ์์ ์ ๋์์ ์ํํ ๋ ์์ ์ ๋จ์ ๋๋ ๊ฐ์ฒด thread
์ค๋ผํด ์ํคํ ์ฒ
์ค๋ผํด ์๋ฒ = Instance(๋ฉ๋ชจ๋ฆฌ ์์ญ + background ํ๋ก์ธ์ค ์์ญ) + Database(์ ์ฅ ํ์ผ ์์ญ)
ํด๋ผ์ด์ธํธ ํ๋ก์ธ์ค -> ์๋ฒ ํ๋ก์ธ์ค: client๊ฐ ์์ฒญํ SQL ์ฟผ๋ฆฌ๋ฅผ server process๊ฐ ์คํ ๊ฒฐ๊ณผ ์ ๋ฌ, application์ ํตํด ์์ฒญ๋ SQL์ parse-execute-fetch๋ฅผ ํตํด ์คํ
pmon - process ๋ ๋ฒจ์ ๋ชจ๋ํฐ๋ง๊ณผ resource cleanup ์ํ
smon - system ๋ ๋ฒจ์ ๋ชจ๋ํฐ๋ง๊ณผ cleanup ์ํ, instance ์์ ์ recovery ์ํ
์ค๋ผํด ๋ฉ๋ชจ๋ฆฌ ์ํคํ ์ฒ
SGA
- ์ค๋ผํด ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- Instance์ ๋ฐ์ดํฐ ๋ฐ ์ ์ด์ ๋ณด๋ฅผ ํฌํจํ๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๊ทธ๋ฃน
- ๋ชจ๋ ์๋ฒ ๋ฐ Background ํ๋ก์ธ์ค์ ์ํด ๊ณต์
- ๊ด๋ จ parameter: sga_max_size, sga_target
Shared Pool
- DB์์ ๋ฐ์ํ๋ ๋๋ถ๋ถ์ ์ฐ์ฐ์ ๊ด๊ณ๋ ํ๋ก๊ทธ๋จ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์ญ
- Shared Pool = Library Cache + Data Dictionary Cache + ๊ธฐํ
- Library Cache: ์ซํ๋ SQL, PLSQL๋ฌธ(SQL๋ฌธ์ ํ์ฅ๋ ๊ฐ๋
)์ ๊ตฌ๋ฌธ๋ถ์๋ ์ฝ๋์ ์คํ์ ํ์ํ ์คํ๊ณํ์ ์ ์ฅ
- Data Dictionary Cache: ์ต๊ทผ์ ์ฌ์ฉ๋ ๋ฉํ์ ๋ณด๋ฅผ row ๋จ์๋ก ์ ์ฅ
- ๊ด๋ จ parameter: shared_pool_size
Database Buffer Cache
- Datafile์์ ์ฝ์ Data Block์ ๋ณต์ฌ๋ณธ์ ์ ์ฅํ๋ ์์ญ
- Database Buffer Cache = Default Buffer Pool + nk Buffer Pool + ๊ธฐํ(Keep, Recycle)
- Buffer state: Unused/Free, Clean, Pinned, Dirty buffer
- LRU List์ ์ ๊ทผํ์ ์กฐํฉ์ ๋ณตํฉ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ด์
- ๊ด๋ จ parameter: db_chche_size, db_nk_cache_size
Redo Log Buffer
- Database์ ๋ํ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ๊ธฐ๋กํ๋ ์ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- DML ๋๋ DDL์ด ์ํํ ๋ณ๊ฒฝ์ฌํญ์ ๋ฆฌ๋(์ฌ์์ฑ)ํ๋ ๋ฐ ํ์ํ ํญ๋ชฉ์ ๊ธฐ๋ก
- Database์ Recovery๋ฅผ ์ํ ์์ญ
- LGWR ํ๋ก์ธ์ค์ ์ํด Online Redo Log File์ ์ ์ฅ
- ๊ด๋ จ parameter: log_buffer
Large Pool
- ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ, ๋ณ๋ ฌ์ฟผ๋ฆฌ ์์ ์ ๋ํ ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ ์ฌ์ฉ
- ์ ํ์ ์์ญ์ผ๋ก ์ต์๋ก ํ ๋น
- ๊ด๋ จ parameter: large_pool_size
Java Pool/Streams Pool
- Java Pool: Oracle JVM์ ๋ชจ๋ ์ธ์ ๋ณ Java ์ฝ๋ ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- Streams Pool: Oracle Stream ํ๋ก์ธ์ค์ฉ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- ๊ด๋ จ parameter: java_pool_size, streams_pool_size
PGA
- ์๋ฒ ํ๋ก์ธ์ค์ ๋ํ ๋ฐ์ดํฐ ๋ฐ ์ ์ด์ ๋ณด๋ฅผ ํฌํจํ๋ private ๋ฉ๋ชจ๋ฆฌ ์์ญ
- PGA = SQL Work Area + Private SQL Area + Session Area
- SQL Work Area: ๋ฐ์ดํฐ ์ ๋ ฌ, ํด์ ์กฐ์ธ, ๋นํธ๋งต ์ธ๋ฑ์ค ์์ฑ ์์ญ์ด ํฌํจ
- Private SQL Area: ์คํ๋๋ SQL ๋ฐ PLSQL์ ์ํ, bind ๋ณ์, ์ปค์์ runtime ์ ๋ณด ๋ฑ์ ํฌํจ
- Session Area: ์ ์ ์ธ์ ์ ๋ํ ์ ์ด ์ ๋ณด๋ฅผ ํฌํจ
- ๊ด๋ จ parameter: pga_aggregate_target
์ค๋ผํด Process Architecture
$ ์ฌ์ฉ์๊ฐ ์ค๋ผํด application์ ์คํํ์ ๋ OS๊ฐ ์์ฑํ๋ client process (SQL*PLUS, PRO*C, Toad ๋ฑ)
- Parse : SQL๋ฌธ ๋ฌธ๋ฒ, ์ฌ์ฉ์ ๊ถํ, ๊ฐ์ฒด์ ์ฌ์ฉ์ฌ๋ถ ๊ฒ์ฌ, ์คํ๊ณํ ์์ฑ
- Execute : Parse ๋จ๊ณ์ ์คํ๊ณํ์ ๋ฐ๋ผ ๋ฐ์ดํฐ block์ readํ๊ณ ๋ณ๊ฒฝ
- Fetch : ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ User Process์ ์ ๋ฌ
DBWn (Database Writer Process)
- Checkpoint๊ฐ ๋ฐ์ํ ๋
- Dirty buffer ๊ฐ ์๊ณ์น์ ๋ฌํ๊ฑฐ๋ Free buffer๊ฐ ์์๋
- Tablespace offline ๋๋ Read Only๋ก ๋ณ๊ฒฝ์
- Table Drop ๋๋ Truncate ์
- Tablespace begin Backup ์
LGWR (Log Writer Process)
- Commit ์ํ์
- Redo log buffer๊ฐ 1/3์ด์ ์ฐจ๊ฑฐ๋ 1MB ์ด์์ buffer๊ฐ ํฌํจ๋ ๋
- Checkpoint์ ์ํ DBWn ํ๋ก์ธ์ค์ ์์ ์ด ์๊ตฌ๋ ๋
- 3์ด๋ง๋ค ๋๋ ์ค์ ๋ Timeout ์๊ฐ์ ์ํด
- Log Switch ๋ฐ์์
CKPT (Checkpoint Process)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์ ์ข ๋ฃ๋ ๋
- Alter system checkpoint; ๋ช ๋ น์ด๋ก ๊ฐ์ ๋ฐ์
- Log Switch ๋ฐ์์
- Tablespace ๋ณ๊ฒฝ ๋๋ Begin Backup์
PMON (Process Monitor Process)
- Server Process์ ๋น์ ์ ์ข ๋ฃ์ Recovery๋ฅผ ์ํ(Transaction Rollback)
- User Process๊ฐ ์ฌ์ฉํ๋ Database buffer cache ์ ๋ฆฌ ๋ฐ Resource ํด์
- Instance์ Server Process์ ์ ๋ณด๋ฅผ Listener์ ๋์ ์ผ๋ก ๋ฑ๋ก
SMON (Sytem Monitor Process)
- Instance ์์์ Recovery ์ํ
- ์ฌ์ฉํ์ง ์๋ Temporary Segment ์ ๋ฆฌ
Storage Architecture
RDBMS๋ Datafile๊ณผ ๊ฐ์ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ์ table, index์ ๊ฐ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๊ฐ ๋ถ๋ฆฌ๋์ด ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅํจ
Data Files
- Tablespace๋ 1๊ฐ ์ด์์ Data File๋ก ๊ตฌ์ฑ
Control Files
- Database๋ช ๊ณผ ID, Database ์์ฑ ์๊ฐ
- Datafile, Online Redo log file, Archived Redo log file ์ ๋ณด
- Tablespace ์ ๋ณด
- Checkpoint ๋ฐ Backup ์ ๋ณด
Online Redo Log Files
- Commit๋์ง ์์ Transaction์ ๋ณด, Undo ๋ฐ์ดํฐ
- Schema์ Ojbect ๊ด๋ฆฌ ๊ตฌ๋ฌธ
- ์ต์ 2๊ฐ ์ด์์ Group์ด ํ์
- ๊ฐ Group์ 1๊ฐ ์ด์์ Member๋ก ๊ตฌ์ฑ
- LGWR์ Group๋ด ๋ชจ๋ Member์ ๋์ผํ ์ ๋ณด ๊ธฐ๋ก
- ๊ฐ Member๋ ๋์ผํ Log Sequence์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง
- Redo Log Group๊ฐ์ ์ด๋
- ํ์ฌ Log file์ด full์ผ๋ ๋ฐ์
Database์ ๋ชจ๋ Data๋ ๋ ผ๋ฆฌ์ ๊ณต๊ฐ์ ํ ๋น
๋ ผ๋ฆฌ์ ๋จ์: Data block, Extent, Segment, Tablespace
Data Block
- DB ์์ฑ์ db_block_size ํ๋ผ๋ฏธํฐ๋ก ์ค์
- ์ผ๋ฐ์ ์ผ๋ก 4KB ๋๋ 8KB๋ก ์ค์
- Tablespace ์์ฑ ์ BLOCKSIZE ๊ตฌ๋ฌธ์ผ๋ก
default block size์ธ์ ์ง์ ๊ฐ๋ฅ
- 2K, 4K, 8K, 16K, 32K ๋จ์๋ก ์์ฑ
- ํด๋น blocksize์ subcache ์์ญ์ด
(db_nk_cache_size) ์ค์ ๋์ด์ผ ํจ
Extents
Segment
- Table / Index / LOB Segment
- Temporary Segments
- Undo Segments
Tablespace
- SYSTEM Tablespace : Data Dictionary ๋ฑ DB๊ด๋ฆฌ์ฉ ๋ฉํ์ ๋ณด object ์ ์ฅ
- SYSAUX Tablespace : Enterprise Manager ๋ฑ ์ถ๊ฐ์ ์ธ DB ๊ตฌ์ฑ์ ์ฌ์ฉ
- UNDO Tablespace : Data ๋ณ๊ฒฝ์ commit์ ๊น์ง ๋ณ๊ฒฝ์ data ์ ์ฅ๊ด๋ฆฌ
- TEMP Tablespace : Session์ด ์ ์ง๋๋ ๋์ ์ฌ์ฉํ๋ ์์ ๋ฐ์ดํฐ ์ ์ฅ
- USER Tablespace : ์ฌ์ฉ์ ์์ฑ object ์ ์ฅ
SQL Server ์ํคํ ์ฒ
Instance(๋ฉ๋ชจ๋ฆฌ ์์ญ + relational/storage engine + ํ๋ก์ธ์ค ์์ญ) + Database(ํ์ผ ์์ญ)
SQL Server Engine ๊ตฌ์ฑ์์
Instance์ Database
์ค๋ผํด - ํ๋์ ์ธ์คํด์ค๊ฐ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ทผ
SQL server - ํ๋์ ์ธ์คํด์ค์ ์ต๋ 32,767๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉ
Memory
SQL Server๋ thread ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ธ์ ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ ์์ญ(PGA)๊ฐ ์์
Oracle | SQL Server | ์ค๋ช | ||
SGA | Shared pool | Memory Pool |
Procedure/Plan Cache |
•SQL, Procedure ์ฝ๋์ ์คํ๊ณํ์ ์ ์ฅ
|
Data Buffer cache | Data buffer cache |
•Data file์ Data block/page๋ฅผ ์ ์ฅํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
|
||
Redo Log buffer | Log cache |
•Data ๋ณ๊ฒฝ๋ด์ญ์ ์ ์ฅํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
|
||
PGA | Connection Context |
•์ฌ์ฉ์ ์ธ์
์ ๋ณด, ์ปค์์ ์์น์ ๋ณด, SP์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ฅ
•PGA ๋ด์ Sort ๋ฑ์ ์ํํ๋ SQL ์์
์์ญ์ SQL Server์ ๊ฒฝ์ฐ Data buffer์์ ์ํ
|
Process
SQL Server๋ ์๋์ฐ ๊ธฐ๋ฐ์ผ๋ก thread๊ฐ oracle์ process ์ญํ ์ ์ํ
Oracle | SQL Server | ์ค๋ช |
Server Process | Worker Thread | Client ์์ฒญ์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌ |
Process Monitor(PMON) | Open Data Services(ODS) | ํ๋ก์ธ์ค ๋ ๋ฒจ์ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ฆฌ์์ค ๋ณต๊ตฌ ์ํ |
System Monitor(SMON) | Database Cleanup/Shrinking | ์์คํ ๋ ๋ฒจ์ ๋ชจ๋ํฐ๋ง๊ณผ ์ธ์คํด์ค ๋ณต๊ตฌ |
Database Writers(DBWn) | Lazy Writer | ๋ฒํผ ์บ์์ Dirty ๋ฒํผ๋ฅผ ๋ฐ์ดํฐ ํ์ผ์ ๊ธฐ๋ก |
Log Writer(LGWR) | Log Writer | ๋ก๊ทธ ๋ฒํผ ์ํธ๋ฆฌ๋ฅผ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ก |
Checkpoint Processes(CKPT) | Database Checkpoint | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ฌํญ์ ์ปจํธ๋กค ํ์ผ๊ณผ ๋ฐ์ดํฐํ์ผ์ ๊ธฐ๋ก |
Archive Processes(ARCn) | N/A | SQL Server๋ Transaction Logํ์ผ์ ๊ณ์ํด์ ๊ธฐ๋ก |
Recoverer(RECO) | Distributed Transaction Coordinateor(DTC) | ๋ถ์ฐ ํธ๋์ญ์ ๊ณผ์ ์ ๋ฐ์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ |
Job Queue(CJQ0, Jnnn) | SQL Agent | ์ค์ผ์ค๋ง ์์ ์ ์ํ |
Oracle
- pmon: process-level์ ๋ชจ๋ํฐ๋ง๊ณผ resource cleanup ์ํ
- smon: system-level์ ๋ชจ๋ํฐ๋ง๊ณผ cleanup ์ํ, instance ์์ ์ recovery ์ํ
SQL Server
- SQLOS(SQL server Operating Service): SQL ์์ง์์ memory, IO, ์ค์ผ์ค๋ง ๊ด๋ฆฌ ๋ฑ ์ํ
Storage Architecture
Oracle๊ณผ SQL Server ๋ชจ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ํ์ผ์ ๋ฐ์ดํฐ ์ ์ฅ, ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ์ ์ฝ๊ฐ์ ์ฐจ์ด ์์
Oracle - ASM์ ํตํ Raw device๋ ์ฌ์ฉ (ASM: ์๋ ์คํ ๋ฆฌ์ง ๊ด๋ฆฌ)
SQL Server
- ๋ณด์ ๋ฐ ๊ฐ์ฉ์ฑ ์ธก๋ฉด์์ NTFS ๊ถ์ฅ
- raw device limitation) 1๊ฐ ํํฐ์ ์ 1๊ฐ์ ๋ฐ์ดํฐํ์ผ๋ง ์์ฑ๊ฐ๋ฅ / ํ์ผ copy, move, delete ๋ถ๊ฐ / Windows NT Backup utility ์ฌ์ฉ ๋ถ๊ฐ / Datafile ์๋ํ์ฅ ๋ถ๊ฐ ๋ฑ๋ฑ
Data blocks, extents, segments
๊ตฌ๋ถ | Oracle | SQL Server |
์ต์ ํ ๋น ๋จ์ | Block | Page |
Block/Page size | 2K, 4K, 8K, 16K, 32K, 64K | 8K ๊ณ ์ |
Storage ํ ๋น ๋จ์ | Extents (multiple block) |
Extents (multiple page) |
Extent size | Variable | 64K ๊ณ ์ |
Extent ์ฌ์ฉ | Uniform (๋จ์ผ object๊ฐ ์ฌ์ฉ) |
Uniform, Mixed (ํผํฉ์ผ๋ก ์ฌ์ฉํ๋ค object ํฌ๊ธฐ๊ฐ 64K๋ณด๋ค ์ปค์ง๋ฉด ๋จ์ผ ํ ๋น) |
์ค๋ธ์ ํธ ์ ์ฅ ๋จ์ | Segment | Heap/Index |
Segment ์ข ๋ฅ | Table, Index, Lob, Temp, Undo | Table, Index |
temp, undo, log ์์ญ
๊ตฌ๋ถ | Oracle | SQL Server | ๋น๊ณ |
TEMP ์์ญ | Temporary tablespace |
Tempdb |
•Oracle์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ Temporary tablespace ์์ฑํ์ฌ ์ฌ์ฉ์๋ณ๋ก ์ง์ ๊ฐ๋ฅํ๋
•SQL Server๋ Tempdb๊ฐ ์ ์ญ ๋ฆฌ์์ค๋ก ๋ชจ๋ ์ฌ์ฉ์์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
|
UNDO ์์ญ | Undo tablespace |
Transaction log file |
•Oracle์ ๊ฒฝ์ฐ Undo์ Redo ์ ๋ณด๋ฅผ ๋ณ๋์ ํ์ผ์ ๊ธฐ๋ก ๊ด๋ฆฌํ๋
•SQL Server๋ DB๋ณ๋ก Transaction log file์ ๋ชจ๋ ๊ธฐ๋กํ๋ฏ๋ก ๊ทธ์ ๋ฐ๋ฅธ ์ด์๊ด๋ฆฌ๊ฐ ์ค์
|
Log ์์ญ | Redo log file | ||
Archive log file | N/A |
•SQL Server๋ ๋ณ๋์ Archive ํ์ผ์ด ์์ผ๋ฉฐ, ๋ก๊ทธ ๋ฐฑ์
์ ๊น์ง Transaction log file์ ๊ณ์ํด์ ๊ธฐ๋ก
•Database ๋ณต๊ตฌ๋ชจ๋ ์ค์ ๊ณผ ๋ฐฑ์
์ค์ผ์ค๋ง์ด ์ค์
|
SQL Server๋ transaction log file์ ๋ณ๊ฒฝ ์ ๋ณด ๋ชจ๋ ๊ธฐ๋กํ๋ฏ๋ก ๋ก๊ทธ ์์ญ์ ์ด์ ๊ด๋ฆฌ๊ฐ ์ค์