[데이터베이스 - 회복]

yedy·2023년 5월 16일
0

[mySQL]

목록 보기
16/16
post-thumbnail

✔️ 회복의 개념

데이터베이스에 장애가 발생했을 때 데이터베이스를 일관성 있는 상태로 되돌리는 DBMS의 기능

🔺 데이터베이스 시스템에서 발생할 수 있는 장애 유형

  • 시스템 충덜
  • 미디어 장애
  • 응용 소프트웨어 오류
  • 자연재해
  • 부주의 or 태업

✔️ 트랜잭션과 회복

🔺 로그파일

  • 트랜잭션이 반영한 모든 데이터의 변경사항을 데이터베이스에 기록하기 전에 미리 기록해두는 별도의 데이터베이스
  • DBMS는 트랜잭션이 수행 중이거나 수행이 종료된 후 발생하는 데이터베이스 손실을 방지하기 위해 트랜잭션의 데이터베이스 기록을 추적하는 로그파일을 사용

✔️ 로그 파일을 이용한 회복

시스템 운영 중 장애가 발생하여 시스템이 다시 가동되었을 때 DBMS는 로그 파일을 먼저 살펴본다. DBBMS는 트랜잭션이 종료되었는지 혹은 중단되었는지 여부를 파단하여 종료된 트랜잭션은 종료를 확정하기 위하여 재실행(REDO)을 진행하고, 중단된 트랜잭션은 없던 일로 되돌리기 위해서 취소(UNDO)를 진행한다.

  • 트랜잭션의 재실행(REDO)
    장애가 발생한 후 시스템을 다시 가동을 했을 때, 로그 파일에 트랜잭션 시작이 있고 종료가 있는 경우
  • 트랜잭션의 취소(UNDO)
    장애가 발생한 후 시스템을 다시 가동했을 때, 로그 파일에 트랜잭션의 시작(START)만 있고 종료(COMMIT)가 없는 경우
  • 즉시 갱신 방법
    '갱신 데이터 -> 로그','버퍼->데이터베이스' 작업이 부분완료 전에 동시에 진행될 수 있으며, 부분완료가 되면 갱신 데이터는 로그에 기록이 끝난 상태.
  • 지연 갱신 방법
    '갱신 데이터-> 로그'가 끝난 후 부분완료를 하고 '버퍼->데이터베이스' 작업이 진행되는 방법

✔️ 체크포인트를 이용한 회복


체크포인트 이후의 값은 DB에 반영이 안된다!!
체크포인트 전에 COMMIT !!

profile
공주 개발자

0개의 댓글