Oracle Admin 강좌 (Oracle9i)
롤백 세그먼트의 관리 5 0 14,848

by 김정식 롤백 세그먼트 ROLLBACK SEGMENT [2003.03.17]


롤백 세그먼트의 생성

  - PUBLIC/PRIVATE : OPS에서 롤백세그먼트를 공용으로 사용할것인지 아닌지를 정하는 키워드 입니다.

  - 롤백 세그먼트의 경우 MINEXTENTS는 2보다 크거나 같아야 합니다. (Minextents >= 2)

  - 롤백 세그먼트의 경우 PCTINCREASE를 설정할 수 없으며 항상 0으로 설정됩니다. 즉 익스텐트의 크기가 동일해야 합니다.(Initial = Next)

  - OPTIMAL은 지정하려면 최소한 롤백 세그먼트의 초기 크기 즉 MINEXTENTS로 정의한 갯수의 익스텐트만큼의 공간의 크기와 같아야 합니다. (Optimal >= Initial*Minextents)

  - MAXEXTENTS를 UNLIMITED로 설정하면 해당 데이터파일의 사용가능한 공간을 전부 사용 할 수 있으므로 크기를 정해주어야 합니다.

  - 경합과 단편화를 최소화 해야 하므로 롤백 세그먼트는 항상 분리된 테이블스페이스에 위치 시켜야 합니다.

롤백 세그먼트의 수정

  - 롤백 세그먼트는 생성될 때 오프라인 상태이며 사용할 수 없는 상태 입니다. 트랜잭션이 롤백 세그먼트를 사용할 수 있게 만들려면 ALTER ROLLBACK SEGMENT 명령을 이용해서 ONLINE상태로 바꺼주어야 합니다.

  - DB를 Shutdown.시켜다 다시 Startup하면 롤백세그먼트는 다시 오프라인 생태로 됩니다.

  - 롤백 세그먼트를 Startup시 온라인으로 하기 위해서는 init.ora파일에 ROLLBACK_SEGMENTS 파라미터를 지정해 주어야 합니다.
    ex) ROLLBACK_SEGMENTS = (rbs_name1, rbs_name2...)

1) 온라인

  - 롤백 세그먼트는 생성될 때 오프라인 상태이기 때문에 온라인 상태로 변경해야 사용 할 수 있습니다.

  - 인스턴스가 온라인 상태로 할 수 있는 롤백 세그먼트의 개수는 MAX_ROLLBACK_SEGMENTS 파라미터로 지정합니다.

 
  ALTER ROLLBACK SEGMENT rollback_segment_name ONLINE;
    

2) 오프라인

  - 새 트랜잭션이 롤백 세그먼트를 사용하는 것을 막으려 할 때 오프라인을 시킵니다.

  - 롤백 세그먼트를 삭제하고자 할 때 오프라인으로 변경해야 합니다.

 
  ALTER ROLLBACK SEGMENT rollback_segment_name OFFLINE;
    

3) 삭제

  - 온라인 상태의 롤백세그먼트는 DROP 할 수 없습니다.

  - 오프라인 상태로 변경한 후 롤백 세그먼트를 DROP해야 합니다.

 
  DROP ROLLBACK SEGMENT rollback_segment_name;
    

- 강좌 URL : http://www.gurubee.net/lecture/1728

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입