반응형
DB 복습 INDEX
① DB 기본 이론 (DBMS 개념 / 데이터 언어)
② 데이터 모델링 (데이터모델 / 객체 / 속성)
③ 정규화 (이상현상 / 이행적 함수 종속)
④ 관계 데이터연산 (관계 대수 /관계해석 /SQL)
⑤ 트랜잭션 (트랜잭션 / 장애 / 회복)
트랜잭션 Transaction
트랜잭션은 DB 상태를 변화시키기 위해 논리적 기능을 수행하는 하나의 작업 단위을 말한다.
쉽게 말해 한번에 수행되어야할 연산의 집합을 말한다.
트랜잭션은 Commit 혹은 Rollback 작업을 수행한다.
- 커밋 Commit : 트랜잭션 작업의 논리적 단위가 성공적으로 완료되었음을 알리는 연산자
- 롤백 Rollback : 트랜잭션 작업이 실행 실패되었음을 알리고 결과를 원상 복구 시키는 연산자
트랜잭션 특징
- 원자성 : 트랜잭션 연산은 DB에 모두 반영되거나 전혀 반영되지 않아야 한다. (All or Noting)
- 일관성 : 트랜잭션 실행이 성공적으로 완료되면 DB는 일관성 있는 상태가 된다.
- 독립성 : 트랜잭션 실행 중에 있는 연산의 중간 결과에 다른 트랜잭션이 접근할 수 없다.
- 영속성 : 트랜잭션이 일단 실행 완료되면 결과는 영구적이다.
트랜잭션 상태
- Active : 트랜잭션 실행 중
- Failed : 트랜잭션 실행 중 오류 / 중단
- Aborted : 트랜잭션 실행 실패 / 철회 → 롤백
- Partially Commited : 트랜잭션의 마지막 연산까지 실행했지만 Commit 직전의 상태
- Commit : 트랜잭션 실행 완료
장애
장애는 쉽게 말해 DB 실행 오류이다.
장애 발생시 회복 작업의 단위가 바로 트랜잭션이 된다.
장애 종류
- 트랜잭션 장애 : 트랜잭션 수행 오류
- 시스템 장애 : 하드웨어의 결함으로 인한 오류
- 미디어 장애 : 디스크 장치 결함
회복
트랜잭션 수행 중 장애로 인해 손상된 DB를 이전 상태로 복구시키는 작업
회복 연산
- 덤프 Dump : DB 전체를 다른 저장장치에 주기적으로 복사하는 연산
- 로그 Log : DB에서 갱신 연산 실행될때마다 데이터 갱신 이전 값과 이후 값을 별도의 파일에 기록하는 연산
- 재실행 Redo : DB 복사본 가져와 로그 이용해 발생 직전 DB 상태로 복구하는 연산 → 트랜잭션 완료 전 장애 발생한 경우
- 취소 Undo : 로그 이용해 실행된 갱신 연산을 취소해 DB의 원래 상태로 복구하는 연산 → 트랜잭션 완료 후 장애 발생한 경우
회복 기법
- 로그 회복 기법
- 지연 갱신 회복 기법 : 트랜잭션의 데이터 갱신 연산 결과 로그 파일에만 기록, 트랜잭션 부분 완료 후 DB 반영
- 즉시 갱신 회복 기법 : 트랜잭션 수행 중 데이터 갱신 연산 결과 DB와 로그 파일에 즉시 반영, 기록
- 검사시점 회복 기법 : 로그 이용하지만 일정시간 간격으로 검사시점 만들어 두고 장애 발생하면 가장 최근 검사시점 이후 트랜잭션에만 회복작업 수행
- 미디어 회복 기법 : 전체 DB 일정주기마다 안전한 저장장치에 복사하는 기법 (덤프) → 디스크 장애에 대비한 회복 기법
반응형
'Database' 카테고리의 다른 글
[NoSQL] NoSQL 입문 / 개념 (0) | 2022.08.02 |
---|---|
[InfluxDB] InfluxDB 입문 (설치 / 사용법 /Tick Stack / 시계열 데이터베이스 / Flux) (1) | 2022.04.11 |
[DataBase ④] 관계 데이터 연산 (관계 대수 / 관계 해석 / SQL) (0) | 2021.09.29 |
[DataBase ③] 정규화 (이상현상 / 이행적 함수 종속) (0) | 2021.09.27 |
[DataBase ②] 데이터 모델링 (데이터모델 / 객체 / 속성 ) (0) | 2021.09.24 |
댓글