• Oracle Database 9i까지는 세그먼트 HWM이하에 할당된 공간은 오직 세그먼트를 이관하거나 재 정의할 때 반납되었습니다.

  • Oracle Database 10g부터는 세그먼트의 빈 공간을 shrink 할 수 있습니다. 세그먼트가 shrink 될 때, 그 데이터는 집약되고 HWM 정보도 변경됩니다. 사용되지 않는 공간은 세그먼트를 포함하고 있는 테이블스페이스에 반납되어 집니다.



  •    



  • CTAS ,ITAS 이용해 Table 생성


       


       



       



  • Delete table


       




  • Shrink 수행



  • Shrink 정상적으로 수행된 확인.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

6 thoughts on “Segment shrinking”
  1. 해당 기능에 대하여 작업을 진행을 하고 있는데
    워낙 대용량이고 하다보니
    상당한 시간이 걸리네요…

    약 데이터양이 100기가 이상이고 인덱스가 150기가 이상이네요..
    거기에 트리거도 걸려 있고 상당한 데이터가 입력이 되어있는 상태라

    유지보수 사이트라 걸어놓고 퇴근을 해도 되는지 참 궁금하네요…

      1. 시스템 사용율과 은 거의 사용을 안하고 있습니다 CPU 는 5%이내이고요

        허나 100기가 이상을 shrink를 할려고 한다면 언두 테이블 스페이스도 그만큼 있어야 하는건가요?

        1. shrink 크기 만큼 언두가 아니라 타겟 테이블스페이스의 용량이 있으면 됩니다 …

  2. 자꾸 질문을 하게 되서 죄송합니다.

    테이블 스페이스 공간이 200G 이고 그중 150G를 한테이블이 사용하고 있다면.
    150G의 공간이 더 필요하다는 말씀이신거죠?

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다