Database Buffer Cache ์ฐธ์กฐ๊ธ
Redo Log Buffer
์ด์ ๊ธ๋ค์์๋ Shared Pool๊ณผ Database Buffer Cache์ ๋ํด์ ํ๋์ SELECT๋ฌธ์ ํตํด ์ด๋ค ์๋ฆฌ๋ก ์ฌ์ฉ๋๋์ง ์์๋ดค์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ UPDATE๋ฌธ์ ๊ฐ๊ณ ๋ณ๊ฒฝ์ฌํญ์ด ์์ ๋ Redo Log Buffer์์ ์ด๋ค ์์ ์ ํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
Redo Log Buffer๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํ๋ ๊ณต๊ฐ์ ๋๋ค. SELECT๋ฌธ์ ์ ์ธํ ๋ค๋ฅธ DML์ด๋ DDL๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ๋ชจ๋ ๋ด์ฉ์ ์ ์ฅํฉ๋๋ค. ๋น์ ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฒ๊ฐ ๋ด๋ ค๊ฐ์๋ Recovery ํ๋ณต์ ์ํด ์กด์ฌํฉ๋๋ค.
Update Process
Redo Log Buffer๋ Execute๋จ๊ณ์์ ์ฌ์ฉ๋ฉ๋๋ค.
1. Query๋ฌธ ์คํ ์์ฒญ
2. Parse ์์ ์๋ฃ
3. Data Block์ DBC๋ก ๋ณต์ฌ
4. ํ๋ ๋ฒจ LOCK
5. REDO LOG BUFFER์ ๋ณ๊ฒฝ์ฌํญ ๊ธฐ๋ก
6. UNDO BLOCK ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ
์์ ๋ชจ๋ ๋จ๊ณ๊ฐ ๋๋๋ฉด ์ต์ข ์ ์ผ๋ก DBC์ ๋ฐ์ดํฐ ๋ด์ฉ์ ๋ณ๊ฒฝํฉ๋๋ค.
LGWR(Log Writer) Background Process
LGWR Background Process๋ Log Buffer์ ์๋ ๋ด์ฉ์ Log File์ ๊ธฐ๋กํ๋ ์ผ์ ํฉ๋๋ค. ์๋์ ๊ฐ์ ์์ ์์ ์์ ํฉ๋๋ค.
1. Commit ๋์์ ๋
์ฌ์ฉ์๊ฐ Commitํ๊ฒ๋๋ฉด ๊ฐ์ฅ ๋จผ์ Log Buffer์ ์๋ ๋ด์ฉ์ Log File์๋ค ๊ธฐ๋กํฉ๋๋ค. ์ด๋ Fast Commit์ ์ํด DBW๊ฐ ์๋ LGWR์ด ํฉ๋๋ค. DBW๋ ์ ์ด์ Random Access๋ก ์์ ์ ํด์ ํ๋ํ๋์ฉ Data Block์ ์ฐพ์๊ฐ๋๋ค. Log Buffer๋ ์์ฐจ์ ์ผ๋ก ๋ณ๊ฒฝ์ฌํญ์ ๊ธฐ๋กํ๊ฒ ๋ฉ๋๋ค. LGWR Process๋ก Sequentail Access๋ฅผ ํ ์ ์๋ค๋ฉด ๋ ๋น ๋ฅธ ์๋๋ก ๊ธฐ๋ก์ด ๊ฐ๋ฅํฉ๋๋ค.
2. Log Buffer๊ฐ 1/3 ์ฐผ์ ๋
3. Log Buffer๊ฐ 1MB ์ฌ์ฉํ์ ๋
4. timeout
LGWR๊ฐ ์์ง ์์ด ๋ด์ฉ์ DBW๊ฐ ์ฐ๋ฉด ์๋ฉ๋๋ค. ๊ทธ๋์ DBW๊ฐ ์์ ์ ์์ํ ๋ LGWR์๊ฒ ๋ฏธ๋ฆฌ ์ ํธ๋ฅผ ์ค๋๋ค.
์ํฉ๊ณผ ์์ ์ผ๋ก ๋ด์๋ LGWR์ ์ฌ์ง์๊ณ ๊ณ์ ์ผ์ ํด์ค ๊ฒ ๊ฐ์ต๋๋ค.
Log Switch ์ฐธ์กฐ๊ธ
๋๊ธ