Commit, Rollback

2024. 7. 14. 00:23DBMS/ORACLE Admin

반응형

  
오라클 데이터베이스에서의 커밋(Commit) 명령과 롤백(Rollback) 명령은 데이터 무결성과 안정성을 유지하는 데 매우 중요한 역할을 한다.  

  트랜잭션(Transaction)과 커밋(Commit)

1. 트랜잭션(Transaction): 오라클 사용자로부터 요구된 작업 하나하나를 의미한다.
2. 커밋(Commit): 트랜잭션이 발생하는 경우 새롭게 생성되거나 갱신된 데이터들의 변경 사항 정보(리두 로그 정보)를 디스크의 리두 로그 파일에 물리적으로 저장하는 과정을 말한다. 

오라클에서 하나의 트랜잭션은 마지막 커밋이 발생한 이후부터 다음 커밋이 발생할 때까지 사용자가 데이터베이스에 대해 실행한 작업을 의미한다. 

 

 


 롤백(Rollback)

롤백은 트랜잭션 동안 수행된 모든 변경 사항을 취소하여 데이터베이스를 마지막 커밋 지점으로 되돌리는 명령이다.  

 

 


 커밋과 롤백의 과정

트랜잭션의 변경 사항은 먼저 리두 로그 버퍼에 저장되며, 커밋 명령이 실행되면 LGWR 프로세스가 리두 로그 버퍼에 있는 리두 기록을 리두 로그 파일에 안전하게 저장한다. 

1. LGWR 프로세스: 커밋 명령이 실행되면 LGWR(로그 라이터) 프로세스가 리두 로그 버퍼에 있는 리두 기록을 리두 로그 파일에 저장한다.
2. 리두 로그 파일: 트랜잭션의 변경 사항이 안전하게 저장되는 디스크 영역이다.

 

 

 

 

Undo Tablespace
   - 변경 작업이 발생하면 오라클은 변경 이전 값을 언두 테이블스페이스(Undo Tablespace)에 일시적으로 저장한다.
   - 이 값들은 트랜잭션이 완료될 때까지 유지되며, Rollback 또는 Read Consistency를 지원하는 데 사용된다.

  언두 레코드의 관리:
   - 변경 이전 값들은 해당 트랜잭션이 Commit되기 전까지 언두 테이블스페이스에 남아있다.
   - Commit이 발생하면, 새로운 트랜잭션에 의해 생성된 변경 이전 값들이 기존 값을 덮어쓸 수 있다.

   

 
 

 

 

반응형

'DBMS > ORACLE Admin' 카테고리의 다른 글

ORACLE ASM  (0) 2024.07.25
IP Address / MAC Address  (0) 2024.07.25
DB buffer cache 영역 구성  (0) 2024.07.13
LRU 알고리즘  (0) 2024.07.13
Buffer Cache - HashTable  (0) 2024.07.12