상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 병행 제어와 회복

정보처리기사 공부지식

by 소란한소란 2024. 5. 20. 20:51

본문

728x90

병행 제어와 데이터베이스 회복

데이터베이스 관리에서 중요한 두 가지 개념인 병행 제어와 데이터베이스 회복에 대해 알아보겠습니다. 병행 제어는 여러 트랜잭션이 동시에 실행되면서 데이터베이스의 일관성을 유지하도록 하는 기법이며, 데이터베이스 회복은 장애로 인해 손상된 데이터를 복구하는 작업입니다.


병행제어

  • 개념
    • 여러 트랜잭션들이 동시에 실행되면서도 데이터베이스의 일관성을 유지할 수 있게 하는 기법
  • 목적
    • 데이터베이스의 공유도 최대화
    • 시스템 활용도 최대화
    • 응답시간 최소화
    • 단위 시간당 트랜잭션 처리건수 최대화
    • DB 일관성 유지

병행제어의 문제점 (★)

  • 갱신 분실(Lost Update)
    • 두 개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
  • 비완료 의존성(Uncommitted Dependency)
    • 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상
데이터 트랜잭션1 트랜잭션2
1000 READ(1000)  
1000 ADD(1000)  
2000 STORE(2000) READ(2000)
1000 장애로
ROLLBACK
 
  • 모순성(Inconsistency)
    • 두 개의 트랜잭션이 병행수행될 때 원치 않는 자료를 이용함으로써 발생하는 문제
  • 연쇄 복귀(Cascading Rollback)
    • 병행수행 된 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback하는 경우 다른 트랜잭션도 함께 Rollback되는 현상
데이터 트랜잭션1 트랜잭션2
1000 READ(1000)  
1000 ADD(1000)  
2000 STORE(2000)  
2000   READ(2000)
2000   ADD(2000)
4000   STORE(4000)
1000 장애로 ROLLBACK  

 

병행제어 기법 (★)

  • 로킹(Locking)
    • 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹 수행
    • 로킹 단위 : 필드, 레코드, 파일, 데이터베이스 모두 로킹 단위가 될 수 있음
  • 로킹 단위에 따른 구분
구분 로크 수 병행성 오버헤드
로킹 단위가 크면 적어짐 낮아짐 감소
로킹 단위가 작으면 많아짐 높아짐 증가
  • 2단계 로킹 규약(Two-Phase Locking Protocol)
    • Lock과 Unlock이 동시에 이루어지면 일관성이 보장되지 않으므로 Lock만 가능한 단계와 Unlock만 가능한 단계를 구분
    • 확장단계 : 새로운 Lock은 가능하고 Unlock은 불가능하다.
    • 축소단계 : Unlock은 가능하고 새로운 Lock은 불가능하다.
  • 타임스탬프(Time Stamp)
    • 데이터에 접근하는 시간을 미리 정해서 정해진 시간(Time Stamp)의 순서대로 데이터에 접근하여 수행
  • 낙관적 병행제어(Optimistic Concurrency Control)
    • 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사
  • 다중 버전 병행제어(Multi-version, Concurrency Control)
    • 여러 버전의 타임스탬프를 비교하여 스케줄상 직렬가능성이 보장되는 타임스탬프를 선택

데이터베이스 회복(Database Recovery)

  • 개념
    • 트랜잭션들을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구하는 작업

장애의 유형

유형 설명
트랜잭션 장애 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황
시스템 장애 H/W 시스템 자체에서 발생할 수 있는 에러 상황
미디어 장애 디스크 자체의 손상으로 발생할 수 있는 에러 상황

 

Undo와 Redo

Undo Redo
트랜잭션 로그를 이용하여 오류와 관련된
모든 변경을 취소하여 복구 수행
트랜잭션 로그를 이용하여
오류가 발생한 트랜잭션을 재실행하여 복구수행

 

로그 파일

  • 트랜잭션이 반영한 모든 데이터의 변경 사항을 데이터베이스에 기록하기 전에 미리 기록해두는 별도의 파일

 

회복 기법 (★)

  • 로그 기반 회복 기법
    • 지연갱신 회복 기법(Deferred Update)
      • 트랜잭션의 부분 완료 상태에선 변경 내용을 로그 파일에만 저장

 

  • 즉시갱신 회복 기법(Immediate Update)
    • 트랜잭션 수행 도중에도 변경 내용을 즉시 데이터베이스에 기록
  • 검사점 회복 기법(Checkpoint Recovery)
    • 체크포인트 회복 기법
    • 장애 발생 시 검사점(Checkpoint) 이전에 처리된 트랜잭션은 회복에서 제외하고 검사점 이후에 처리된 트랜잭션은 회복 작업 수행
  • 그림자 페이징 회복 기법(Shadow Paging Recovery)
    • 트랜잭션이 실행되는 메모리상의 Current Page Table과 하드디스크의 Shadow Page Table 이용
  • 미디어 회복 기법(Media Recovery)
    • 디스크와 같은 비휘발성 저장 장치가 손상되는 장애
    • 발생을 대비한 회복 기법
  • ARIES 회복 기법(Algorihms for Recovery and Isolation Exploiting Semantics)
    • 주요 3단계
      • 분석단계
      • REDO 단계 (로그 재실행)
      • UNDO 단계 (로그 취소)

병행 제어와 데이터베이스 회복은 데이터베이스 관리에서 중요한 부분입니다. 이 개념들을 잘 이해하고 적절히 활용하면 데이터베이스의 성능과 안정성을 크게 향상시킬 수 있습니다. 2024년에 정보처리기사를 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기