[DB] 11. 트랜잭션 관련, DB 복구 기법, 병행제어

2024. 4. 21. 18:42cs및 소프트스킬/데이터베이스

728x90
반응형
SMALL

1. 회복 (Recovery)

  - 트랜잭션들을 수행하는 도중 장애 발생 시

     => 데이터베이스 손상 됬을 때 손상 되기 이전으로 정상 상태로 복구

  - 회복 기법 종류

  • 연기 갱신 기법
  • 즉각 갱신 기법
  • 그림자 페이지 대처 기법
  • 검사점 기법

 

 

2. REDO

  - 데이터페이스가 비정상적으로 종료시

    => 디스크에 저장된 로그 분석하여 트랜잭션 시작(Start)과 완료(Commit)에 대한 기록 있는 트랜잭션들의 작업을 재작업

  - 로그를 이용하여 해당 데이터 항목에 대해 이전 값을 이후 값으로 변경하는 연산

 

 

 

3. UNDO

  - 데이터베이스가 비정상적으로 종료시

    => 디스크에 저장된 로그를 분석하여 트랜잭션의 시작(Start)에 대한 기록을 있지만, 완료(Commit) 기록 없는 트랜잭션들이 작업한 변경 내용들을 모두 취소

  - 로그를 이용하여 해당 데이터 항목에 대해 이후 값을 이전 값으로 변경하는 연산

 

 

4. 즉각 갱신 기법(Immediate Updates)

  - 트랜잭션에 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법

  - 장애가 발생 시 회복 작업할 경우 대비하여 갱신 내용들은 Log에 보관

  - Redo(재시도) / Undo(취소) ahen rksmd

 

 

5. 병행제어(Concurrency Control)

  - 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행 할 때

    => 동시에 실행되는 트랜잭션들이 DB의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 것

  - 병행 제어 기법의 종류

  • 로킹(Locking)
  • 타임 스탬프 순서
  • 최적 병행수행
  • 다중 버전 기법

 

6. 로킹(Locking)

  - 트랜잭션들이 어떤 로킹 단위를 액세스 하기 전에 Lock(잠금) 요청하여 Lock이 허락되어야만 그 로킹 단위를 액세스 할 수 있도록 하는 기법

  - 주요 데이터의 액세스 : 상호 배타적

 

 

7. 로킹 단위 (Locking Granularity)

  - 한꺼번에 로킹할 수 있는 객체의 크기

    => 데이터베이스, 파일, 레코드, 필드 등

  - 로킹단위가 클 경우 : 로그수 작음 / 관리 쉬움 / 오버헤드 감소 / 병행성 수준 낮음

  - 로킹단위가 작을 경우 : 로그수 많음 / 관리 복잡 / 오버헤드 증가 / 병행성 수준 높음

 

 

8. 타임 스탬프 순서 (Time Stamp Ordering)

  - 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전

    => 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법

  - 직렬성 순서를 결정하기 위해

     => 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법

728x90
반응형
LIST