imp 시의 속도향상을 위한 팁

2010.10.13 15:15

조인상 조회 수:14038

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

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

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

 

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

출처 : OTN
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

No. 11193

TIPS(49) : IMPORT PERFORMANCE TIPS
==================================

PURPOSE


[Import 의 Performance]
Oracle import를 실행 시 많이 걸리는 시간을 줄이기 위해 다음의 현상을
적용해 보자.

Explanation


1) System 적 변경

- DB 를 다시 create 할 경우 DB_BLOCK_SIZE를 증가시킨다.
이 block size 가 큰 경우, 더 작은 I/O cycle 이 발생한다.
이 변경값이 permanent한 경우는 변경 전과 비교한 모든 효과를 고려한다.

- 1개의 커다란 rollback segment 를 생성하고, 이외의 rollback segment는
모두 offline 한다.

- 1개의 rollback segment는 import 되어질 table 중 가장 큰 것의 50%
정도로 잡는다. import 는 기본적으로 insert into table_name values
(,,,,,) 이고 이 경우 rollback segment 에는 rowid 만 들어가게 되므로
2개의 같은 size 인 extent를 갖는 rollback 을 생성하면 된다.

- import 가 끝날 때까지 database 를 NOARCHIVELOG mode로 유지한다.
이는 archive log 를 생성하는 overhead 를 없앨 수 있다.

- rollback segment와 마찬가지로, 커다란 redo log file을 생성한다.
클수록 log switch 가 발생하지 않으므로 import 시는 좋다.
작은 size 의 redo log 는 offline 하도록 한다. alert.log 에 나타나는
'Thread 1 cannot allocate new log, sequence 17, Checkpoint not
complete'의 메시지는 좀 더 크거나 더 많은 갯수의 redo log file 이
필요함을 나타낸다.

- 가능하다면 table, rollback, redo log file 이 다른 disk에 있도록 한다.
이는 i/o contention을 줄일 수 있다.

2) Init.ora Parameter 변경

- LOG_CHECKPOINT_INTERVAL을 redo log file의 size 보다 크게 준다.
이 숫자는 OS block 을 의미하여 unix 에서는 512 byte 이다.
이를 크게 하면 log swich time을 줄일 수 있다.

- SORT_AREA_SIZE를 증가시킨다.
인덱스를 아직 생성하지 않았다 하더라도, unique, primary key는 있기
때문이다.
이 값의 증가는 같은 machine 안에 별도의 어떤 작업이 있는가,
free memoty 가 얼마 만큼 있느냐에 따라 다르긴 하지만 평상 시의 5-10
배로 한다.
만일 machine이 swapping이나 paging이 발생하면 더욱 크게 해준다.

3) Import Options 변경

- COMMIT=N option을 사용한다.
이를 사용하면 buffer의 data 가 insert되고 commit함이 아니라, 각
object(table) 의 모든 data가 insert 후 commit 된다.
만일 rollback 이 작다면 이 option 을 이용할 수 없다.

- BUFFER 크기를 크게 한다.
이것 역시 시스템의 다른 activity 나, 데이타베이스 크기에 따라 다르다.
이 값이 크면 export file을 access 하는 횟수를 줄일 수 있다.

- import 시 INDEXES=N option을 사용한다.
만일 index를 생성 시는 SORT_AREA_SIZE 는 더욱 커야 한다.


Reference Documents



none

글 수정:
Min Angel (Yeon Hong Min, Korean)

번호 제목 글쓴이 날짜 조회 수
115 exp error - ORA-19206: Invalid value for query or REF CURSOR parameter 조인상 2010.05.12 156647
114 centOS 5.2 에 오라클 10g 설치 조인상 2010.05.12 109931
113 오라클 온라인백업 스크립트 (ksh 용) [1] file 조인상 2010.05.12 100773
112 ORA-28040 : No matching authentication protocol 조인상 2014.11.13 67285
111 히든 파라미터 확인하는 쿼리 조인상 2010.05.12 62461
110 성능분석을 위한 v$sysstat, v$sesstat, v$system_event 조회 조인상 2011.09.27 50449
109 오라클 패치후 각 컴퍼넌트들 버전 확인 쿼리 조인상 2010.10.05 46338
108 exp실행시 에러. ORA-06512 SYS.DBMS_METADATA_INT 조인상 2010.05.12 32658
107 오라클 11g - ADR/ADRCI : 새로운 alertlog 위치 조인상 2011.05.17 29720
106 오라클에 접속하는 최대 인스턴스개수(세션개수)를 늘리는 방법 조인상 2010.05.12 24667
105 datafile, redolog, controlfile 위치 변경하기 조인상 2012.08.02 24625
104 일반유저에게 kill session 권한 주기 ischo 2019.08.12 22324
103 ORA-04063: package body "EXFSYS.DBMS_EXPFIL_EXP" has errors 조인상 2012.01.04 20766
102 온라인 백업방법 begin~end backup 조인상 2010.05.12 20679
101 windows용 오라클 온라인 백업 스크립트 file 조인상 2010.07.01 20143
100 SQL developer 실행시 jvm.dll 오류 발생 조치 방법 조인상 2013.01.23 19766
99 Oracle 설치문서에서 보는 ASM file 조인상 2012.03.30 19747
98 online backup(archive log mode) 조인상 2010.05.12 19439
97 ORA-01089 : 오라클 프로세스를 kill 한 후 로그인 못 할때 조인상 2010.06.20 19438
96 ORA-01555 : snapshot too old: rollback segment number %s with name \"%s\" too small ischo 2012.04.10 19266
서버에 요청 중입니다. 잠시만 기다려 주십시오...