ORA-01632

2010.05.13 19:17

조인상 조회 수:8437

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

 

출처 : http://cafe.naver.com/pbdn/23

+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

  

ORA-01632 에러는 index가 확장하려고 할 때 maxextents값의 제한에

도달하여 더 이상 extents를 일으키지 못하는 경우입니다.

이 에러의 경우 보통은 index의 storage절의 initial, next가 작아서

발생하기 때문에 근본적으로 storage의 initial,next를 크게 키워

주면서 다시 만드는 것이 좋습니다.

 

그러나 현재 다시 생성하는 것이 어렵다면 일단 maxextents만 키워서

사용을 하다가 나중에 작업을 할 수도 있습니다.

 

maxextents를 키우려면 (이 기능은 7.3이상부터 가능)

 

SQL> alter index i_dept_deptno storage (maxextents 200);

 

과 같이 실행하면 됩니다.

 

위와 같이 index가 일반 index가 아니라 primary key index인 경우는

index만 drop했다가 다시 생성할 수는 없습니다. 그러므로 primary key를

다시 만들면서 지정하거나 index를 rebuild해야 합니다.

일반 index의 경우는 index를 다시 생성하거나 rebuild하면 되는 데,

보통 다시 생성하는 것보다 rebuild하는 것이 속도가 좋습니다.

 

1. index를 rebuild하는 방법

 

SQL> alter index pk_dept rebuild

2 tablespace ind_data

3 storage (initial 1M next 1M);

 

2. primary key생성시 storage지정하는 방법

 

SQL> alter table dept drop primary key;

SQL> alter table dept add constraint pk_dept

2 primary key (deptno)

3 using index tablespace ind_data

4 storage (initial 1M next 1M);

서버에 요청 중입니다. 잠시만 기다려 주십시오...