[λ°μ΄ν°λ² μ΄μ€] ν볡(Recovery)
π§ͺ Computer Science/Database
μ₯μ μ μ ν
- νΈλμμ μ₯μ : νΈλμμ μ μ€ν μ λ Όλ¦¬μ μΈ μ€λ₯λ‘ λ°μν μ μλ μλ¬ μν©
- μμ€ν μ₯μ : H/W μμ€ν μ체μμ λ°μν μ μλ μλ¬ μν©
- λ―Έλμ΄ μ₯μ : λμ€ν¬ μ체μ μμμΌλ‘ λ°μν μ μλ μλ¬ μν©
ν볡(Recovery)
- λ°μ΄ν°λ² μ΄μ€λ₯Ό μ₯μ κ° λ°μνλ μ΄μ μ μνλ‘ λ³΅κ΅¬μμΌμ μΌκ΄λ λ°μ΄ν°λ² μ΄μ€ μνλ₯Ό λ§λλ κ²
- ν볡μ μν λ°μ΄ν° 볡μ¬λ³Έμ λ§λλ λ°©λ²μλ
λ€ν(Dump)
μλ‘κ·Έ(Log)
λ κ°μ§κ° μλ€. - λ€ν(Dump): μΌμ μ£ΌκΈ°λ‘ μλ³Έμ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ λ΄μ©μ λ€λ₯Έ μ μ₯μ₯μΉμ 볡μ¬νλ κ²
- λ‘κ·Έ(Log): λ³κ²½ μ΄μ μ λ°μ΄ν°λ² μ΄μ€λ₯Ό κΈ°μ€μΌλ‘ λ³κ²½ μ°μ°μ΄ λ°μν λλ§λ€ λ‘κ·Έ νμΌμ μμ±νμ¬ κΈ°λ‘νκ³ , ν볡ν λ λ‘κ·Έμ μ ν λ΄μ©μ μ¬μ©νμ¬ λ³΅μνλ λ°©λ²
λ‘κ·ΈνμΌ(Log File)
- νΈλμμ μ΄ λ°μν λͺ¨λ λ°μ΄ν°μ λ³κ²½μ¬νμ λ°μ΄ν°λ² μ΄μ€μ κΈ°λ‘νκΈ° μ μ 미리 κΈ°λ‘ν΄λλ λ³λμ λ°μ΄ν°λ² μ΄μ€
- μμ ν νλλμ€ν¬μ μ μ₯λλ©° μ μκ³Ό κ΄κ³μμ΄ κΈ°λ‘μ΄ μ‘΄μ¬νλ€.
λ‘κ·Έ νμΌμ μ΄μ©ν ν볡
- λ°μ΄ν°μ λ³κ²½μ΄ λ°μν λλ§λ€ μμ±λλ λ‘κ·Έ νμΌμ μ΄μ©νλ κ²
- λ°μ΄ν°μ λ³κ²½ κΈ°λ‘μ μ μ₯ν΄ λ λ‘κ·Έ νμΌμ μ΄μ©νλ©΄ μμ€ν μ₯μ λ 볡ꡬν μ μλ€.
- λ‘κ·Έ νμΌμλ νΈλμμ μ μμ(START)κ³Ό μ’ λ£(COMMIT)μ΄ μμΌλ―λ‘ ν΄λΉ κΈ°μ μ κΈ°μ€μΌλ‘ λ³κ²½ μ¬νμ λ€μ κΈ°λ‘ν μ μλ€.
- REDO: νΈλμμ μ μν΄ λ³κ²½λ λͺ¨λ λ°μ΄ν° νλͺ©λ€μ λ‘κ·Έ νμΌμ μλ λ³κ²½ μ΄ν κ°(new value)μΌλ‘ λ체
- UNDO: νΈλμμ μ μν΄ λ³κ²½λ λͺ¨λ λ°μ΄ν° νλͺ©λ€μ λ‘κ·Έ νμΌμ μλ λ³κ²½ μ΄μ κ°(old value)μΌλ‘ λ체
λ‘κ·Έ νμΌμ ν볡 λ°©λ²
- μ¦μ κ°±μ (Immediate Update): κ°±μ λ°μ΄ν°βλ‘κ·Έ, λ²νΌβλ°μ΄ν°λ² μ΄μ€ μμ μ΄ λΆλΆμλ£ μ μ λμμ μ§νλ μ μμΌλ©°, λΆλΆ μλ£κ° λλ©΄ κ°±μ λ°μ΄ν°λ λ‘κ·Έμ κΈ°λ‘μ΄ λλ μν
- μ§μ° κ°±μ (Deferred Update): κ°±μ λ°μ΄ν°βλ‘κ·Έκ° λλ ν λΆλΆ μλ£λ₯Ό νκ³ λ²νΌβλ°μ΄ν°λ² μ΄μ€ μμ μ΄ μ§νλλ λ°©λ²
체ν¬ν¬μΈνΈ(CheckPoint, κ²μ¬μ )
λ‘κ·Έλ κ·Έλλ‘ κΈ°λ‘μ μ μ§νλ©΄μ ν볡 κ΄λ¦¬μκ° μ νλ μΌμ ν μκ° κ°κ²©μΌλ‘ κ²μ¬ μμ μ μμ±νλ κ²
ν볡 μ λ§μ μμ λ‘κ·Έλ₯Ό κ²μνκ³ κ°±μ νλ μκ°μ μ€μ΄κΈ° μν¨
체ν¬ν¬μΈνΈκ° μμΌλ©΄ λ‘κ·Έλ₯Ό μ΄μ©ν ν볡 κΈ°λ²μ μ’ λ κ°λ¨ν΄μ§λ€.
체ν¬ν¬μΈνΈ μ΄μ μ COMMIT κΈ°λ‘μ΄ μλ κ²½μ°
- λ‘κ·Έμ 체ν¬ν¬μΈνΈκ° λνλλ μμ μ μ΄λ―Έ λ³κ²½ λ΄μ©μ΄ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ κΈ°λ‘λ νμ΄κΈ° λλ¬Έμ μ무 μμ μ΄ νμ μλ€.
μ²΄ν¬ ν¬μΈνΈ μ΄νμ COMMIT κΈ°λ‘μ΄ μλ κ²½μ°
- μ²΄ν¬ ν¬μΈνΈ μ΄νμ λ³κ²½ λ΄μ©μ΄ λ°μ΄ν°λ² μ΄μ€μ λ°μλμ§ μμμΌλ―λ‘
REDO
λ₯Ό μ§ν
- μ²΄ν¬ ν¬μΈνΈ μ΄νμ λ³κ²½ λ΄μ©μ΄ λ°μ΄ν°λ² μ΄μ€μ λ°μλμ§ μμμΌλ―λ‘
μ²΄ν¬ ν¬μΈνΈ μ΄νμ COMMIT κΈ°λ‘μ΄ μλ κ²½μ°
- μ¦μ κ°±μ λ°©λ²μ μ¬μ©νλ€λ©΄ λ²νΌμ λ΄μμ΄ λ°μλμ μλ μκΈ° λλ¬Έμ
UNDO
λ₯Ό μ§ν - μ§μ° κ°±μ λ°©λ²μ μ¬μ©νλ€λ©΄ COMMIT μ΄μ μ λ²νΌ λ΄μ©μ λ°μ΄ν°λ² μ΄μ€μ λ°μνμ§ μκΈ° λλ¬Έμ μ무 μμ μ΄ νμ μλ€.
- μ¦μ κ°±μ λ°©λ²μ μ¬μ©νλ€λ©΄ λ²νΌμ λ΄μμ΄ λ°μλμ μλ μκΈ° λλ¬Έμ