시간 산정 하는 것과 작업 방법을 간소화 하기 위해 CTAS 를 이용해 테스트 테이블을 만듭니다.

Create table  아무이름 tablespace  '기존 테이블과다른테이블스페이스명 ' nologging

As select * from '원본테이블이름' ;

이후에 인덱스를 개발/운영팀에서 요청한 인덱스로 생성 . (걸린 시간 확인 가능,ORACLE 9i 이상)

이후 온라인 에서 인덱스 변경 생성 작업을 하는 방법을 말씀 드리면

  1. 기존 인덱스는 그대로 둠 ( 절대 삭제하면 안됨 )
  2. 새로운 인덱스는 그냥 생성 인덱스명은 임시명 부여
  3. 기존 인덱스명 변경
  4. 새로운 인덱스를 기존 인덱스명으로 변경

3.4번은 빠르게 진행 해야 하므로 되도록 구문을 미리 만드시고 빠르게 copy and paste 하시면 됩니다.

Syntex 예1) ALTER INDEX idx_empno RENAME TO idx_emp_01;

     : 인덱스 idx_empno의 이름을 idx_emp_01로 변경한다.

TIP1 큰 인덱스 생성 작업 도중 아카이브 로그가 발생 합니다.

추신 : 저정도 인덱스 크기면 수분 안에 끝날 겁니다.

절대 기존 인덱스는 삭제 하지 마세요.  SQL 플랜이 악성으로 변경 될 수 있습니다. 삭제는 나중에 트래픽 없을 때 하시는 것을 권장합니다.

예제)

     1.     기존 인덱스는 그대로 둠 ( 절대 삭제하면 안됨 )

è  기존 인덱스 : scott.emp_indx , job 컬럼 인덱스 선언

 

2.     새로운 인덱스는 그냥 생성 인덱스명은 임시명 부여

è  임시 인덱스 생성: create index scott.emp_indx_sal on emp(sal) nologging;

    alter index scott.emp_indx_sal logging;

 

3.     기존 인덱스명 변경

è  alter index scott.emp_indx rename to emp_index_old_20141008;

 

4.     새로운 인덱스를 기존 인덱스명으로 변경

è  alter index scott.emp_indx_sal rename to emp_indx;

 

# 인덱스 변경 확인

SQL> select index_name, table_name from user_indexes;

 

INDEX_NAME                     TABLE_NAME

------------------------------ ------------------------------

PK_DEPT                        DEPT

PK_EMP                         EMP

EMP_INDX                       EMP

EMP_INDEX_OLD_20141008         EMP

 

 

업무시간(Online)에 변경 가능하지만 최대한 트래픽이 적은 시간대에 하시는 것을 권장 드립니다.

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

+ Recent posts