Admin - Undo
Oracle/Administration / 2010. 3. 2. 10:25
- Tx lock (row level lock) ; 작업하는 row를 단위로 lock이 됨 (다른 DBMS의 경우 page level lock)
- Tm lock (table level lock) ; 작업하는 테이블 전체를 lock함
- undo data ; roll back을 대비해서 이전의 data를 보관
- undo segment ; undo data를 모아두는 장소 (segment ; 들어있는 내용에 따라 명칭이 달라지는 테이블)
- DB buffer cache > undo table space > undo segment
- commit이나 roll back이 되어 비어있는 segment가 있는지를 먼저 확인하여 비어있는 segment를 재활용함
- commit이 발생하더라도 undo는 지워지지 않고 나중에 덮어쓰기만 됨 (따라서 크기가 줄지 않고 커지기만 함 - 8i)
- 모든 segment가 transaction 중일 경우에는 새로운 segment를 만듬 (제한된 크기까지 segment가 확장됨)
- undo가 확장되지 못해서 저장을 못할 경우 DML 도중에 error가 발생, 따라서 DML시 최우선적으로 undo를 확보함
- read consistency (읽기 일관성) ; commit이 안된 내용을 다른 user가 select할 경우 undo의 내용을 불러와서 보여줌
- instance recovery ; 오류 복구시 commit이 되지 않은 내용도 우선 적용하였다가 commit이 안된 것만 다시 roll back함
- 8i의 undo 생성과정 (수동)
table space 생성 -> roll back segment 생성 -> enable ; 9i부터는 table space만 생성하면 이후의 과정은 자동 (AUM)
=> 그래도 여전히 불필요하게 커진 undo는 수동으로 삭제해야함 (다른 파일로 대체한 후 삭제)
- tablespace는 여러개가 존재할 수 있지만, 한번에 1개만 사용할 수 있음 (반드시 사용중인 1개는 존재해야함)
=> 사용중인 tablespace를 다른 것으로 변경할 경우에는 일시적으로 2개 사용 (사용중인 것은 삭제 불가)
- snap shot too old error ; commit된 undo 파일의 내용이 다른 프로세스에 의해 덮어씌워져서 발생하는 오류
=> undo_retention ; snap shot too old error를 줄이기 위해 commit된 내용을 undo에 잠시 더 유지하는 옵션
'Oracle > Administration' 카테고리의 다른 글
Admin - Index (0) | 2010.03.03 |
---|---|
Admin - Table (0) | 2010.03.02 |
Admin - Tablespaces & Datafiles (0) | 2010.02.25 |
Admin - Redo Log (0) | 2010.02.24 |
Admin - Parameter File & Control File (0) | 2010.02.22 |