Database System Concepts - Recovery System

Chan Young Jeong·2023년 6월 17일
0

Database System Concepts

목록 보기
13/14
post-thumbnail

데이터베이스 시스템은 중요한 비즈니스 데이터를 관리하고 보호하는 데 필수적인 역할을 합니다. 그러나 데이터베이스 시스템은 우발적인 데이터 손실이나 시스템 장애와 같은 예기치 않은 상황에 직면할 수 있습니다. 이런 상황에서 데이터의 무결성과 지속성을 보장하기 위해 Recovery System은 필수적인 요소입니다.

Recovery System은 데이터베이스 시스템에서 발생한 장애로부터 복구하는 데 사용되는 메커니즘과 절차의 집합입니다. 이 시스템은 데이터베이스의 일관성과 안정성을 유지하며, 시스템 오류, 소프트웨어 결함, 하드웨어 장애, 인간의 실수 등과 같은 다양한 원인으로 인해 손실된 데이터를 복구할 수 있습니다.

Recovery System의 핵심 목표는 데이터의 무결성과 지속성을 보장하는 것입니다. 데이터의 무결성은 데이터베이스 내의 정보가 정확하고 일관성을 유지한다는 것을 의미합니다. 데이터의 지속성은 시스템 장애 또는 데이터 손실로부터 복구되어야 하는 데이터의 영구적인 보존을 의미합니다.

Recovery System은 주로 로그 기반 접근 방식을 사용합니다. 이 방식은 데이터베이스의 모든 변경 사항을 로그로 기록하여 시스템 장애가 발생한 경우, 로그를 사용하여 이전 상태로 복원하는 데 활용됩니다. 이를 통해 데이터의 일관성을 유지하고 손실된 데이터를 복구할 수 있습니다. Recovery System은 보조 저장 장치에 데이터의 백업을 수행하거나 데이터의 복제본을 유지함으로써 더욱 강력한 보호 메커니즘을 제공하기도 합니다.

이처럼 Recovery System은 데이터베이스 시스템의 핵심 요소 중 하나로서, 중요한 데이터의 안정성과 지속성을 보장하는 역할을 수행합니다.

Failure Classification

Transaction Failure

logical error

논리 오류는 데이터베이스 내부의 일관성과 무결성 규칙을 위배하는 오류입니다. 이러한 오류는 일반적으로 데이터의 부적절한 처리, 잘못된 쿼리 작성, 부정확한 데이터 입력 등으로 인해 발생할 수 있습니다. 논리 오류는 사용자의 실수나 애플리케이션 프로그램의 버그와 같은 인간의 요소에 의해 발생할 수 있습니다.
예를 들어, 0으로 숫자를 나누는 경우, 중복된 레코드를 삽입하는 경우, 부정확한 데이터 유형을 입력하는 경우, 관계형 데이터베이스에서 외래 키 제약 조건을 위배하는 경우 등이 논리 오류의 일반적인 예입니다. 이러한 오류는 데이터의 일관성과 정확성을 저해할 수 있으며, 심각한 경우 데이터베이스 전체의 무결성을 손상시킬 수도 있습니다.

system error

시스템 오류는 주로 하드웨어, 소프트웨어, 네트워크 등의 기술적인 문제로 인해 발생하는 오류입니다. 이러한 오류는 데이터베이스 시스템 자체의 동작에 영향을 주며, 데이터의 손실이나 손상을 초래할 수 있습니다. 시스템 오류는 예기치 않은 시스템 장애, 네트워크 연결의 중단, 전원 문제, 저장 장치의 고장 등으로 인해 발생할 수 있습니다.
시스템 오류는 데이터베이스 시스템의 안정성과 가용성을 위협할 수 있으며, 복구 메커니즘을 통해 이를 극복해야 합니다. 시스템 오류로 인해 데이터베이스 시스템이 다운되는 경우, 데이터의 손실과 중단 시간을 최소화하기 위해 신속하게 복구 작업을 수행해야 합니다.

System crash

시스템 충돌(System Crash)은 컴퓨터 시스템이 예기치 않게 중단되거나 비정상적으로 동작하는 상태를 말합니다. 이는 하드웨어, 소프트웨어, 또는 네트워크 문제로 인해 발생할 수 있습니다. 쉽게 말하면 전기 나가는 것.

Disk failure

디스크 고장(Disk Failure)은 하드 디스크 드라이브가 정상적인 작동을 멈추거나 잘못된 동작을 수행하는 상황을 말합니다. 디스크 고장은 데이터베이스 시스템에 매우 심각한 영향을 미칠 수 있는 장애 중 하나입니다.

디스크는 데이터베이스 시스템에서 데이터를 저장하고 검색하는 데 필수적인 역할을 합니다. 하드 디스크 드라이브는 회전하는 원판인 플래터와 그 위에 데이터를 기록하는 헤드로 구성되어 있습니다. 디스크 고장은 플래터의 손상, 헤드의 오작동, 전원 공급 장애 등 다양한 원인으로 인해 발생할 수 있습니다.

디스크 고장은 RAID(Redundant Array of Independent Disks)와 같은 디스크 복구 기술, 백업 및 복원 프로세스, 그리고 디스크 모니터링과 경고 시스템을 활용하여 디스크 고장으로부터 복구할 수 있습니다

Storage Structure

volatile storage

Volatile Storage는 전원이 꺼지거나 시스템이 재부팅될 때 데이터가 손실되는 저장 매체입니다.

  • system crash로 부터 can not survive!
  • ex) main memory , cache memory

Nonvolatile storage

Nonvolatile Storage는 전원이 꺼져도 데이터가 영구적으로 보존되는 저장 매체입니다. 대표적으로 하드 디스크 드라이브(HDD)와 NAND 플래시 메모리(SSD)가 해당됩니다

  • system crash로 부터 can survive!
  • ex) disk , tape, flash memory, non-volatile RAM
  • 하지만 Nonvaltile storage 도 오류 발생할 수 있음

stable storage

  • 현실에서는 없는 어떠한 오류에 대해서도 can survive할 수 있는 저장 장치
  • 최대한 stable storage를 위해 여러 가지 장치들과 백업 시스템을 통해 데이터의 복사본을 안정적으로 보존합니다. 시스템 장애나 디스크 고장과 같은 예기치 않은 상황에서도 데이터의 안전성을 보장하기 위해 사용됩니다. Stable Storage는 주로 복구 작업과 트랜잭션 관리를 위해 데이터베이스 시스템에서 활용됩니다.
  • system crash 관점에서 stable storage는 disk임. 하지만 disk failure에선 disk 또한 stable storage가 아님.

Data Access

  • physical blocks : disk에 저장되어 있는 블락

  • buffer blocks : main memory에 temporarily 저장되어 있는 블록

  • Block Movement between disk and main memory
    input(B) : transfer physical block B -> main memory
    output(B) : transfer buffer block B - > disk

  • 각 트랜잭션은 자신에게 할당된 private한 work-area(memory)가 있다. 이곳에 data에 대한 local copeis를 저장한다.
    read(X) : assign the value of data X in buffer block -> the local variable x
    write(x) : assign the value of local variable x -> data X in buffer block

0개의 댓글