๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ORACLE/ADMIN

[Oracle] redo.log ์„œ๋ฒ„ ๋‚ด๋ถ€์  Log Switch ์ž‘๋™ ์›๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ

by ๐ŸŒปโ™š 2020. 4. 2.

Redo Log Buffer Update ์ฐธ์กฐ๊ธ€

 

[Oracle] SGA Redo Log Buffer ๋ฆฌ๋‘ ๋ฒ„ํผ ์‚ฌ์šฉ์›๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ

Redo Log Buffer ์ด์ „ ๊ธ€๋“ค์—์„œ๋Š” Shared Pool๊ณผ Database Buffer Cache์— ๋Œ€ํ•ด์„œ ํ•˜๋‚˜์˜ SELECT๋ฌธ์„ ํ†ตํ•ด ์–ด๋–ค ์›๋ฆฌ๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” UPDATE๋ฌธ์„ ๊ฐ–๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ Redo Log Bu..

myjamong.tistory.com

 

redo.log

ORACLE_BASE ์•„๋ž˜ oradata ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณด๋ฉด redo.log ํŒŒ์ผ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ๋“ค์€ Recovery ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด Oracle์˜ Background Process์ธ LGWR(Log Writer)๊ฐ€ ์ˆ˜์‹œ๋กœ ์ž…๋ ฅํ•ด์ฃผ๊ณ  ์žˆ๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

 

 

 

Oracle Database

Oracle Database์˜ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1. Control File
DB์˜ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ex) /d1/a.dbf 100M
      /d2/b.dbf 500M
      ...
      ...
      /d5/redo01.log
      /d6/redo02.log
      ...

2. DB File
์‹ค์ œ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

3. Redo Log File
Redo Log Buffer๊ฐ€ ๊ธฐ๋กํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Redo Log File์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

LGWR(Log Writer)

LGWR์€ LOG BUFFER์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋กœ๊ทธํŒŒ์ผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋กœ๊ทธ ํŒŒ์ผ์ด ์œ„์—์„œ ๋ณธ redo.logํŒŒ์ผ์ด๊ณ  ๊ณ„์† ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋งˆ๋‹ค ๊ฐฏ์ˆ˜๊ฐ€ ๋‹ค๋ฅด์ง€๋งŒ ๊ธฐ๋ณธ 2๊ฐœ๋Š” ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ถ€ํ„ฐ ๊ฐ ํŒŒ์ผ์„ ๊ทธ๋ฃน์ด๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Log Sequence Number

๊ฐ ๊ทธ๋ฃน์—๋Š” ์ˆœ์ฐจ์ ์ธ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒˆํ˜ธ๋Š” LGWR ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚ฎ์€ ๋ฒˆํ˜ธ์˜ ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, Database Buffer Cache์— ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ์–ผ๋งˆ๋‚˜ DB File์— ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ฒˆํ˜ธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋น„์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๊ฒฝ์šฐ ํšŒ๋ณตํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

Log Switch Event

๊ณ„์†ํ•ด์„œ ๊ทธ๋ฃน1์— ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜๋ฉด ์–ธ์  ๊ฐ€๋Š” ๊ธฐ๋กํ•  ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๊ฒŒ๋  ์‹œ๊ธฐ๊ฐ€ ์˜ต๋‹ˆ๋‹ค. ์ด๋•Œ Log Switch๋ผ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ๋‹ค๋ฅธ ๊ทธ๋ฃน์œผ๋กœ ๋Œ€์ƒ์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. Log Switch Event๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Checkpoint Event๋ผ๋Š” ๊ฒƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

Checkpoint ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋Š” ๊ทธ๋ฃน์˜ Log Sequence Number๋ฅผ ์ด์ „์— ์‚ฌ์šฉํ•˜๋˜ ๊ทธ๋ฃน์˜ ๋ฒˆํ˜ธ๋ณด๋‹ค ํ•˜๋‚˜ ๋†’์€ ๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

 

 

Checkpoint Event

Checkpoint Event๋Š” DBC ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ณ€๊ฒฝ๋œ ์ •๋ณด๋ฅผ ์‹ค์ œ ๋ฌผ๋ฆฌ DB File์— ์ ์šฉํ•˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ Checkpoint Event๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด redo log file๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ด ์งˆ๋ฌธ์„ ํ•˜๋Š” ์ด์œ ๋Š” redo log file์€ ํšŒ๋ณต์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ ๋งŒ์•ฝ DBC์™€ DB File์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ์ด ์ผ์น˜ํ•œ๋‹ค๋ฉด ๊ทธ๋ฃน1์˜ ๋‚ด์šฉ์€ ๋” ์ด์ƒ ํ•„์š” ์—†๋Š” ๋‚ด์šฉ์ด์ง€ ์•Š์„๊นŒ์š”?

 

 Checkpoint๊ฐ€ ์ „์ง„ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ์ด์ „ ๋‚ด์šฉ์€ ํ•„์š” ์—†๊ฒŒ๋˜๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. RPG๊ฒŒ์ž„์„ ํ•˜๋‹ค๊ฐ€ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด ์ €์žฅํ•œ ์‹œ์ ์œผ๋กœ์˜ ๋ฐ์ดํ„ฐ๋งŒ ํ•„์š”ํ•˜์ง€ ๋” ์ด์ƒ ์ด์ „์˜ ์ €์žฅ๋‚ด์šฉ์ด ํ•„์š” ์—†๋“ฏ์ด, ์—†์–ด๋„ ๋˜๋Š” ๋กœ๊ทธ๋‚ด์šฉ์ด ๋˜๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

 

 

 

Log File Full

Checkpoint์˜ ์ „์ง„์œผ๋กœ ๋” ์ด์ƒ ํ•„์š”์—†๊ฒŒ๋˜๋ฒ„๋ฆฐ Group1์˜ ๋‚ด์šฉ์„ ์œ„์˜ ์ด๋ฏธ์ง€์— ์ด์–ด์„œ ์ƒ๊ฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ group1์„ ์ „๋ถ€ ์‚ฌ์šฉํ•˜๊ณ  Log Switch๊ฐ€ ๋ฐœ์ƒํ•ด์„œ Group2์—๋‹ค ๊ธฐ๋กํ•˜๋‹ค๊ฐ€ Group2๊นŒ์ง€ ๋” ์ด์ƒ ๊ธฐ๋กํ•  ๊ณต๊ฐ„์ด ์—†๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? 

 

Checkpoint Event๊ฐ€ ๋ฐœ์ƒํ•ด์„œ Log Switch Event๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๊ณ  ๋” ์ด์ƒ ํ•„์š”์—†๋Š” ๋‚ด์šฉ์ด ๋˜์–ด ๋ฒ„๋ฆฐ Group1์— Overwriteํ•˜์—ฌ ๊ธฐ๋ก์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ Log Switch๋ฅผ ํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ Checkpoint Event๊ฐ€ ๋๋‚˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

 

Checkpoint ํ๋ฆ„

1. Log Switch ๋ฐœ์ƒ --> Checkpoint Event
Log Switch ๋ฐœ์ƒ 

2. Checkpoint Event
DBC ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ DB File์— ์ ์šฉํ•˜๊ณ  ์ž‘์—…์ด ๋๋‚˜๋ฉด CKPT์—๊ฒŒ ๋๋‚ฌ๋‹ค๊ณ  ์‹ ํ˜ธ๋ฅผ ์ค๋‹ˆ๋‹ค.

3. Control File ๊ธฐ๋ก
Control File์— Checkpoint SCN์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

4. DB File Header ๊ธฐ๋ก
๋ชจ๋“  DB File Header์— Checkpoint SCN ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

Checkpoint ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์œ„ ํ๋ฆ„๋Œ€๋กœ ๊ณ„์† ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ 2๋ฒˆ์˜ ์ž‘์—…์ด ๋๋‚˜์ง€๋„ ์•Š์•˜๋Š”๋ฐ Log Switch๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ๋‹ค์‹œ Checkpoint Event๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ๊ทธ๋ฃน์€ 2๊ฐœ ๋ฐ–์— ์—†์„๋•Œ๋Š” ์ด์ „ Checkpoint ์ž‘์—…์ด ๋๋‚ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๋Œ“๊ธ€