Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-18
제목 ORA-1632 ERROR 조치 방법 (INDEX REBUILD)
ORA-1632 ERROR 조치 방법 (INDEX REBUILD)
========================================


Purpose
-------
Ora-1632 error가 발생하는 경우의 조치 방법과 Index rebuild 방법에 대해
알아보자.


Explanation
-----------

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);
Comment
등록된 코멘트가 없습니다.