본문으로 바로가기

[Oracle] ROLLBACK이란?

category 2. Database/2_1 Oracle 2020. 5. 18. 20:42

   

 

ROLLBACK

- 작업 중 문제가 발생되어서 트랜잭션의 처리 과정에서 발생한 발견사항을 취소하는 명령어입니다.

- ROLLBACK 역시 하나의 트랜잭션 과정을 종료하게 됩니다.

- 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌립니다.

- Transaction(INSERT, UPDATE, DELETE) 작업 내용을 취소합니다.

- 이전 COMMIT한 곳 까지만 복구합니다.

 

 

COMMIT과 ROLLBACK의 장점

- 데이터 무결성이 보장됩니다.

- 영구적인 변경 전에 데이터의 변경 사항을 확인할 수 있습니다.

- 논리적으로 연관된 작업을 그룹화 할 수 있습니다.

 

 

자동 COMMIT, ROLLBACK 되는 경우

- SQL*PLUS가 정상 종료되었다면 자동으로 COMMIT 되지만, 비정상 종료되었다면 자동으로 ROLLBACK 합니다.

- DDL과 DCL 명령문이 수행된 경우 자동으로 COMMIT 됩니다.

- 정전이 발생했거나 컴퓨터가 DOWN 된 경우 자동으로 ROLLBACK 됩니다.

 


ROLLBACK 수행 과정

- 롤백 명령은 마지막으로 수행한 커밋 명령까지만 정상 처리(①, ②)된 상태로 유지하고 그 이후에 수행했던 모든 DML 명령어 작업(③, ④, ⑤)들을 취소시켜 이전 상태로 원상 복구시킵니다.

- 트랜잭션은 이렇듯 ALL - OR - Nothing 방식으로 DML 명령어들을 처리합니다.