DB - 트랜잭션

04.Database 2023. 10. 19. 15:14
728x90
반응형

트랜잭션

 

활동,부분완료(커밋직전),실패,철회(롤백),완료(커밋)

ACID, 2PL, 데이터블럭

 

[개념] 한번에 수행되어야 할 DB의 Read와 Write 연산을 수행하는 최소 작업단위(무결성 보장)

[상태전이] 활동(Active), 부분완료(Partial Committed), 실패(Failed),중단( Aborted), 완료(Commited)

[특징] 원자성, 커밋/롤백, 일관성, 고립성, 지속성

 

[동시성제어 원인, 현상, 해결방안]

1)트랜잭션(ACID)

2)동시수행:고립화수준(레벨 0,1,2,3)

3)발생현상:Dirty Read, Phantom Read

4)문제점:갱현모연

5)해결방안:낙관적 기법,Timestamp,Locking,다중버전

 

[관리기법] 트랜잭션 관리기법 문제에서

1단락은... 트랜잭션 관리기법이 왜 필요한지, 관리되지 않는다면 어떤 문제가 일어나므로 트랜잭션 관리가 필요함

 


 

ACID

 

원자성,일관성,고립성,영속성

All or Nothing, Log, Dump

Locking, Validation, Timestamp

 

[개념] 데이터 트랜잭션이 안전하게 수행된다는 것을 보장하기 위해 데이터베이스가 가져야하는 4가지 성질

Atomic - All or Nothing

Consistency - 동시성 제어 통한 모순방지(Locking, Timestamp, Validation)

Isolation - Commit이전 참조방지(상호배제)

Durability - 장애발생시 복구위한 방안제공(Log, Dump, Checkpoint)

 

A - 부분적으로 실행되다가 중단되지 않는 것 보장

C - 언제나 일관성 있는 DB상태유지

I - 다른 트랜잭션 끼어들기 방지

D - 성공 수행한 트랜잭션은 영원히 반영되어야함

[해결방안]

AD - 회복기법, CI - 동시성제어

 

 

 

 


데이터 회복기법

 

회로체크, REDO, UNDO

 

[개념] DB운영중 예상치 못한 장애가 발생한 경우 DB를 장애발생 이전의 일관된 상태로 복원시키는 것

[조건] 데이터(중복), 아카이브(덤프), 로그(온라인로그,보관로그)

[기법]

중요요소(REDO,UNDO,회복관리기),

로그기반(즉시,지연,체크포인트),

페이징기반(그림자페이징) [즉지체그]

 

[장애유형] 실행,트랜잭션,시스템,미디어

[회복관리기] RMAN

・로그, 메모리 덤프등 이용 회복 기능 수행 DBMS의 핵심 구성 요소

・트랜잭션 실행 실패 시 로그 이용 모든 변화를 Undo

・로그를 이용하여 Redo도 수행

 


REDO/UNDO

 

<Ti,Start>, <Ti, Commit> 둘다 -->

REDO(최근 CP복원 Archive사본 + Log)

<Ti,Start>만 있고 <Ti,Commit>없으면 -->

UNDO(취소복원 Log + Backward 취소연산)

 

[REDO(Forward Recovery)] : 최근 체크포인트 이전으로 복원 (Archive사본 + Log)

- DB내용 자체가 손상이 된 경우에 가장 최근의 복제본을 적재시킨 뒤 이 복제본 이후에 일어난 변경만을 로그를 이용하여 재실행하여 복구

[예] <Ti,Start>, <Ti, Commit> 둘다 --> REDO

 

[UNDO(Backward Recovery)] : 모든 변경내용 취소하여 복원 (Log + Backward 취소연산)

- DB내용 자체는 손상되지 않았지만 변경중이거나 변경된 내용에 대한 신뢰성을 잃어버린 경우에 로그를 이용하여 모든 변경을 취소시킴으로써 복구

[예] <Ti,Start>만 있고 <Ti,Commit>없으면 --> UNDO

 

728x90
Posted by Mr. Slumber
,