티스토리 뷰

언두 테이블스페이스     

   UNDO TABLESPACE

 

언두 테이블스페이스 (UNDO TABLESPACE) :

- 사용자가 아니라 서버프로세스(SERVER PROCESS)가 사용자별로 언두세그먼트 할당해서 언두 데이터(UNDO DATA)를 관리

- 인스턴스(INSTANCE)당 여러개 존재하지만, 사용되는것은 한개

- 관리 방법은 자동 모드와 수동모드, 9i 부터는 AUM(오토매틱 언두 매니지먼트 AUTOMATIC UNDO MANAGEMENT) 사용 권장


언두 테이블스페이스 사용목적 :

- 트랜잭셔널 롤백 (TRANSACTIONAL ROLLBACK) : 사용자가 롤백(ROLLBACK) 수행할 때 이곳에 저장된 언두 데이터(UNDO DATA) 사용

- 리드 콘씨스턴씨 (READ CONSISTENCY = CR) : 씨알(CR) 작업을 통해 트랜잭션(TRANSACTION)이 끝나지 않은 데이터는 변경전 데이터를 보여줌



씨알 (CR) 작업 과정

 


1. 현재 사용자 A가 데이터 버퍼캐시(DBC) 에서 'LEE'라는 블록을 'KIM'으로 업데이트 했으나, 커밋(COMMIT) 수행 전 (완료되지 않은 트랜잭션) 데이터이고, 락(LOCK)이 설정되어 있어서 해당블록을 다른 사용자가 사용할 수 없는 상태이다.

2. 사용자 B가 변경전 데이터('LEE')를 조회하면, 오라클은 언두 세그먼트(UNDO SEGMENT)에 있는 데이터를 데이터버퍼캐쉬로 복사해서 

3. 사용자 B에게 보여준다.


언두 테이블스페이스 관리하기


언두 테이블스페이스(UNDO TABLESPACE) 조회


SQL> set line 200

> col name for a10

> show parameter undo;



신규 언두 테이블스페이스 생성하기


SQL> create undo tablespace undo02

2 datafile '/app/testrman/undo02.dbf' size 10M

3 autoextend on;



신규 생성후 언두 테이블스페이스 변경하기


SQL> alter system set undo_tablespace=undo02;


*spfile 일경우 재부팅없이 적용가능하고,

 pfile일 경우 DB 종료후, 파라미터파일 변경해주어야함.







공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함