[Oracle] 트랜잭션과 Commit, Rollback, Savepoint

EUN JY·2022년 8월 25일
1

Database

목록 보기
13/21

1. 트랜잭션

  • 일관성 있는 상호작용을 위한 단위
  • 데이터베이스 시스템은 ACID(Atomicity, Consistency, Isolation, Durability)를 보장하기 위해 트랜잭션을 논리적 작업 단위로 사용
  • 트랜잭션을 통해 데이터베이스는 항상 일관성 있는 상태를 유지해야 함

1-1. COMMIT

  • 데이터베이스 연산이 정확히 종료되어 변경 내역을 실제 데이터베이스에 반영
  • 커밋하기 전, 서버에 롤백 세그먼트 버퍼가 만들어지며 영향 받은 행들이 LOCK 됨
    • SELECT문을 사용하여 트랜잭션의 효과를 볼 수 있음
  • 커밋 후, 영향 받은 행에 수용된 LOCK이 해제되며 서버 내부 트랜잭션 테이블이 시스템 변경 번호를 생성, 트랜잭션에 대입, 테이블에 저장함

1-2. ROLLBACK

  • 데이터베이스 연산 중 문제 발생 직전의 COMMIT 지점까지 되돌림
  • ROLLBACK TO SAVEPOINT를 이용해 일부만 ROLLBACK 가능
ROLLBACK [WORK] [TO [SAVEPOINT] 세이브포인트명];

1-2-1. SAVEPOINT

  • ROLLBACK 수행 시 마지막 COMMIT 지점까지 되돌아감
  • SAVEPOINT 지정하면 그 부분에서 트랜잭션 취소 가능
profile
개린이

0개의 댓글