회복시스템

김주형·2023년 6월 9일
0
post-thumbnail

Reference

🙇🏻‍♂️ 스스로 다시 보려고 기록하는 내용입니다

-한국방송통신대학교


회복의 역할


시스템 실패의 유형

  1. 트랜잭션 실패
  • 논리적: 잘못된 데이터 입력, 부재, 버퍼 오버플로, 자원 초과이용
  • 시스템적: 운용 시스템의 교착상태
  1. 시스템 장애
  • 시스템의 하드웨어 고장, 소프트웨어의 오류
  • 주기억장치와 같은 휘발성 저장장치의 내용 손실
  1. 디스크 실패
  • 비휘발성 디스크 저장장치의 손상 및 고장으로 인한 데이터 손실

회복데이터의 구성


데이터 저장 구조

  1. 데이터는 디스크와 같은 비휘발성 저장장치에 저장되며, 전체 데이터의 일부만 주기억장치에 상주

  2. 데이터베이스는 데이터를 블럭(block) 단위로 전송하고 블럭 단위로 기억장소를 분할

  3. 트랜잭션은 디스크로부터 주기억장치로 데이터를 가져오며, 변경된 데이터는 다시 디스크에 반영

  • 가져오기, 내보내기 연산은 블럭 단위로 실행
  • 물리적 블록: 디스크 상의 블럭
  • 버퍼 블록: 주기억장치에 임시적으로 상주하는 블럭

데이터베이스 연산

x 있으면 바로 보여주고, 없으면 input 해서 보여줌


로그 기반 회복

로그기반 회복의 개념


데이터 항목 변경과정

1. WAL (Write Ahead Log)

  • 트랜잭션은 데이터베이스 수정 전, 로그 레코드를 생성하여 기록

2. 데이터 항목 변경 과정

  • 트랜잭션이 메인 메모리의 개인 영역에서 여러 연산을 수행
  • 트랜잭션이 데이터 항목이 존재하는 메인 메모리에 위치한 버퍼 블럭의 데이터를 변경
  • Output 명령을 실행하여 버퍼 블럭을 디스크에 기록

Redo와 Undo 연산


데이터베이스 변경과 커밋


회복의 유형

  1. 회복은 트랜잭션에 의해 요청된 갱신 작업이 디스크에 반영되는 시점에 따라 구분

  2. 지연 갱신 회복(deferred update restore)

  • 부분 커밋까지 디스크 반영을 지연시키고 로그에만 기록
  • 실패시, 별도의 회복 작업 필요없이 로그만 수정
  1. 즉시 갱신 회복 (immediate update restore)
  • 갱신 요청을 곧바로 디스크에 반영
  • 실패시, 디스크에 반영된 갱신 내용을 로그 바탕으로 회복

은행시스템의 트랜잭션의 예


시스템 장애 발생 상황

즉시 갱신이냐, 지원갱신이냐에 따라 회복방법 다름


체크포인트


체크포인트 기법


체크포인트를 이용한 회복


회복 알고리즘

트랜잭션의 롤백 알고리즘

-> 역방향으로 올라와 start가 나오면 되돌리기(롤백) 멈춤


시스템 장애 후 회복 알고리즘

언두할거 먼저 찾음
로그레코드에 start abort가 있으면 리스트에서 삭제

profile
우리스러움

0개의 댓글