Oracle startup
Oracle ์๋ฒ๋ฅผ ๊ธฐ๋ํ์ต๋๋ค. ์ด๋ ์์๋๋ก instance started - database mounted - database opened ์์๋ก ์คํ๋ฉ๋๋ค.
instance started
Oracle Instance์ธ SGA ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ Background Process๋ค์ ๊ธฐ๋ํฉ๋๋ค.
database mounted
Control File์ ์ฝ์ ์ ์๋ ์ํ๊ฐ mounted ์ ๋๋ค.
์ด ๋จ๊ณ์์ ๋ง์ฝ ์ ์ ์ ์์ ์ผ๋ก ๋ด๋ ค๊ฐ์ง ์์๋ค๋ฉด SMON Background Process๊ฐ Instance Recovery ์์ ์ ํฉ๋๋ค.
Instance Recovery ์์ ์ผ๋ก Rollfoward์ Rollback ์์ ์ ํฉ๋๋ค.
database opened
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ด์ด์ค๋๋ค.
๋ง์ฝ Instance Recovery ์์ ์ ํ๊ณ ์๋ค๋ฉด, Rollfoward ์์ ๋ง ๋๋๋ฉด ๋ฐ๋ก openํฉ๋๋ค.
๋น์ ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฒ๊ฐ ๋ด๋ ค๊ฐ์๋ Instance Recovery ๋จ๊ณ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Inconsistent Data
์ฌ์ฉ์๊ฐ Commit์ ํด๋ DB File์ ๋ฐ์์ด ์๋๋ ๊ฒฝ์ฐ์ Commit์ ์ํ๋๋ฐ๋ DB File์ ๋ฐ์๋๋ ๊ฒฝ์ฐ ๋๊ฐ์ง ์ด์ ๋ก ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ด ๊นจ์ง ์ ์์ต๋๋ค. 1๋ฒ์ ๊ฒฝ์ฐ DB File์ ๋ฐ์ํ๋ ๊ณผ์ ์์ ์ค๊ฐ์ ์๋ฒ๊ฐ ๋ด๋ ค๊ฐ๋ฉด ์ถฉ๋ถํ ๋ฐ์ํ ์๋ ์๋ ์ํฉ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ 2๋ฒ์ ๊ฒฝ์ฐ ์ด๋ค ์ํฉ์์ ์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋์ง ๊ฐ์ด ์ ์ ์ฌ ์ ์์ต๋๋ค.
๋จผ์ DBC์์ DB File๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ํด์ฃผ๋ DBW(DB Writer)๊ฐ ์ผ์ ํ๋ ์์ ๊ณผ LGWR(Log Writer)๊ฐ Redo Log Buffer๋ก ๋ถํฐ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๋ ์์ ์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
DBW ์ผํ๋ ์์
1. Free Buffer๋ฅผ ์ฐพ๊ธฐ ์ํด LRU List๋ฅผ ์๊ณ๊ธธ์ด ๋งํผ ์ฐพ์์ ๋
2. Dirty List๊ฐ ์๊ณ๊ธธ์ด๋งํผ ๋์ด๋ฌ์ ๋
3. timeout 3์ด ๋ง๋ค
4. Checkpoint Event ๋ฐ์
LGWR ์ผํ๋ ์์
1. Commit
2. ์ ์ฒด ์ฉ๋์ 1/3 ์ฐผ์ ๋
3. 1MB ์ฉ๋ ์ฐผ์ ๋
4. DBW๊ฐ ์ผ ์์ํ๊ธฐ ์ ์ ์ ํธ๋ฅผ ์คฌ์ ๋
์ฌ์ฉ์๊ฐ Commit์ ํ๋ฉด ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ DB File์ ์ ์ฅํ์ง ์์ต๋๋ค. Commit ํ์ ๋๋ Redo Log์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋์ Commitํ์ง ์์ ๋ด์ฉ๋ DB File์ ๋ค์ด๊ฐ ์์ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๋ฐ Instance Recovery ์์ ์ ํ ๋ Checkpoint์ Undo Block์ ์ด์ฉํด์ RollFoward์ Rollback๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
Rollfoward
Commit ๋์๋๋ฐ DB File์๋ ๋ฐ์๋์ง ์์ ๊ฒฝ์ฐ๋ Rollfoward ์์ ์ ํตํด ํด๊ฒฐํ ์ ์์ต๋๋ค. Rollfoward๋ ๋ง์ง๋ง Checkpoint๊ฐ ๋ฐ์ํ ์์ ์์ ๋ถํฐ redo log์ ๊ธฐ๋ก๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ค์ ์คํํ๋ ๊ฒ ์ ๋๋ค. ์ฌ์ฉ์๊ฐ Commitํ์ ๋ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ์์ ์ Redo Log์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฅํ๋ ๊ฒ ์ด๋ผ๊ณ ํ์ต๋๋ค. ๊ทธ๋์ ๋น์ ์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฒ๊ฐ ๋ด๋ ค๊ฐ๋ค๋ฉด Redo Log์ ๋ด์ฉ์ ๋ค์ ์ ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ํ๋ Commit๋ด์ฉ์ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
Rollback
Commitํ์ง ์์๋๋ฐ DB File์ ๋ฐ์๋ ๋ด์ฉ์ Rollback์ ํตํด ๋ด์ฉ์ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
Database open
์๋ฒ ๊ธฐ๋์ ํ์ ๋ ๋ง์ง๋ง์ผ๋ก Database open ์์ ์ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ Database mount ๋จ๊ณ์์ Instance Recovery ์๊ฐ์ ๋ง์ง๋ง checkpoint๋ก๋ถํฐ ์ ์ฉํด์ผํ redo์ ์์ ๋์ ๋ฐ๋ผ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋ค๋ฆ ๋๋ค.
Database open ์์ ์ Rollfoward์ด ๋๋๋ฉด ๋ฐ๋ก ์ฝ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ฐ์ฉ์ฑ์ ๋งค์ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์ 1๋ถ์ด๋ผ๋ ๋นจ๋ฆฌ ๊ธฐ๋์ํค๊ธฐ ์ํด์ ์ด๋ ๊ฒ ์คํํฉ๋๋ค.
Rollback์ ๋ํ ์์ ์ ๊ณ์ ์งํ๋๋๋ฐ, ๋ง์ฝ Rollback๋์ง ์ด๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ๋ ค๊ณ ํ๋ฉด, ๊ทธ๋ Rollback ์์ ์ ํฉ๋๋ค.
๋๊ธ