Tibero

Similar documents
Tibero

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 1. TABLE MIGRATOR 란? TABLE MIGRATOR 홖경설정 TABLE MIGRATOR 바이너리 Shell 설정 Migrator.Properterties 파일설정 TAB

Tibero

마리오와 소닉 리우 올림픽™

MySQL-.. 1

Tmax

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

DBMS & SQL Server Installation Database Laboratory

인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

歯sql_tuning2

Microsoft PowerPoint - 10Àå.ppt

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

10.ppt

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Oracle Database 10g: Self-Managing Database DB TSC

ALTIBASE HDB Patch Notes

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

쉽게 풀어쓴 C 프로그래밊

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>

PowerPoint Template

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

단계

윈백및업그레이드 Tibero Flashback 가이드

Tablespace On-Offline 테이블스페이스 온라인/오프라인

API 매뉴얼

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

목 차

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

untitled

PowerPoint Presentation

Remote UI Guide

토익S-채용사례리플렛0404

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

#KM560

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

JDBC 소개및설치 Database Laboratory

Microsoft Word - AnyLink Introduction v3.2.3.doc

Orcad Capture 9.x

API 매뉴얼

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

TITLE

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

untitled

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint 프레젠테이션

MS-SQL SERVER 대비 기능

PowerPoint 프레젠테이션

BSC Discussion 1

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

13주-14주proc.PDF

#DPK5(PB)(9.8.19)

빅데이터분산컴퓨팅-5-수정

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

문서 템플릿

피해자식별PDF용 0502

CD-RW_Advanced.PDF

PowerPoint 프레젠테이션

#KM-235(110222)

mariokart_manual_pdf_2

#KM-340BL

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

ALTIBASE HDB Patch Notes

Simplify your Job Automatic Storage Management DB TSC

bn2019_2

초보자를 위한 ADO 21일 완성

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

초보자를 위한 분산 캐시 활용 전략

BTSK

DocsPin_Korean.pages

[Brochure] KOR_TunA

Hardware Manual TSP100


슬라이드 1

FlashBackt.ppt

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

ez-shv manual

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

B _02-M_Korean.indd

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

휠세미나3 ver0.4

슬라이드 1

Intra_DW_Ch4.PDF

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

untitled

#KM-250(PB)

강의 개요

PRO1_09E [읽기 전용]

Microsoft PowerPoint Python-DB

PowerPoint 프레젠테이션

Goodus 기술노트 [44 회 ] SQL Loader Author 나지혜, 이규열 Creation Date Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Res

01

Transcription:

Tibero 대용량이관가이드 Copyright 2013 TIBER Co., Ltd. All Rights Reserved.

Copyright Notice Copyright 2013 TIBER Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구서현동 272-6 우 ) 463-824 Restricted Rights Legend All TIBER Software (Tibero ) and documents are protected by copyright laws and international convention. TIBER software and documents are made available under the terms of the TIBER License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TIBER Co., Ltd. 이소프트웨어 (Tibero ) 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TIBER Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TIBER의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tibero is a registered trademark of TIBER Co., Ltd. ther products, titles or services may be registered trademarks of their respective companies. Tibero 는 TIBER Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. 안내서정보안내서제목 : Tibero 대용량이관가이드발행일 : 2013-06-20 소프트웨어버전 : Tibero 5 안내서버전 : 2.1.1

내용목차 안내서에대하여... v 제1장 개요... 1 1.1. 기본개념... 1 1.2. 주요용어... 2 제2장 대용량데이터이관예제... 3 2.1. 개요... 3 2.2. Table Migrator 예제... 3 2.3. DB Link 예제... 9 2.4. tbloader 예제... 11 Tibero iii

안내서에대하여 안내서의대상 본안내서는대용량데이터를이관하려는모든데이터베이스사용자를대상으로기술한다. 안내서의전제조건 본안내서는대용량데이터이관과정을설명한안내서이다. 따라서본안내서를원활히이해하기위해서는다음과같은사항을미리알고있어야한다. 데이터베이스의이해 운영체제및시스템환경의이해 UNIX 계열 (LINUX 포함 ) 의기본지식 데이터이관에대한기본지식 안내서의제한조건 본안내서는 Tibero 를실무에적용하거나운용하는데필요한모든사항을포함하지않는다. 안내서에대하여 v

안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값 옵션인수값 vi Tibero 대용량이관가이드

제 1 장개요 본장에서는대용량데이터이관방법및고려사항에대해서설명한다. 1.1. 기본개념 이기종데이터베이스를이관할때대용량테이블이있다면이관방법을통해수행시간을단축할수있다. 고객사의환경 ( 네트워크, Disk I/, 데이터속성 ) 을고려하여적절한방법을선택한다. 다음은이관방법들의특징에대한설명이다. 이관방법 tbmigrator 특징 GUI 기반의클라이언트이다. ( 네트워크오버헤드가커서대용량데이터를이관 할경우권장하지않는다 ) DPL 을지원한다. Table Migrator 테이블단위로데이터를옮기는데최적화된툴이다. SELECT 옵션의 CNDITIN, PARTITIN 을지원한다. DPL, P-DPL 을지원한다. DB Link + DPI SURCE DB 에맞는 Gateway 를설치하고 DB LINK 를설정한다. APPEND 힌트를통해 DPI 를지원한다. SAM 파일 + tbloader 변화가없는테이블에대해 SAM 파일로내려 tbloader 를이용하여데이터를 로드한다. DPL, P-DPL 을지원한다. External Table + DPI 를이용할수있다. 다음은각데이터이관방법들이지원하는방식에대한설명이다. 방식 tbmigrator Table Migrator DB Link tbloader Parallel Processing Select Condition X X Direct Path Load 제 1 장개요 1

방식 tbmigrator Table Migrator DB Link tbloader Multi Thread X Rows Per Commit X X X 대용량데이터를이관할때고려해야할사항은아래와같다. 충분한네트워크대역을확보한다. I 대역을고려하여스케줄또는 DP를적용한다. DPL, Parallel DPL을최대한활용한다. DPL, Parallel DPL이불가능할때에는 CPL을병렬로수행한다. (Multi Insert) Index, Constraint, Trigger 등은데이터이관이끝난다음생성한다. 1.2. 주요용어 CPL(Conventional Path Loading) 컬럼데이터를읽어컬럼배열에담고일괄처리방식으로데이터를로드하는방법이다. DPL(Direct Path Loading) 특정컬럼의데이터타입에맞게데이터를컬럼배열형태로만든다음블록형식기를거쳐로드하는방법으로다음과같은제약사항이있다. Parallel DPL의경우 Tibero 5 r69848 이후부터지원한다. SUBPARTITINED TABLE은 DPL 또는 Parallel DPL을미지원한다. IT는 DPL 또는 Parallel DPL을미지원한다. Partitioned INDEX의경우 Normal Index만 DPL을지원한다. LNG 컬럼이포함된 255개이상의 Column을가진테이블은 DPL을미지원한다. LB 계열의컬럼이있는경우 DPL만지원한다. INDEX가생성되어있는경우 DPL만지원한다. DP(Degree of Parallelism) 병렬도라고하며, 단일병렬작업에서사용되는병렬실행서버의수이다. 2 Tibero 대용량이관가이드

제 2 장대용량데이터이관예제 본장에서는대용량데이터이관방법의예제를설명한다. 2.1. 개요 데이터이관은다양한방법을이용하여수행할수있고이로인해수행속도를최적화시킬수있다. 단, 테이블에대한데이터이관만가능하므로 bject에대한이관은수동으로수행해야한다. 다음은예제에서사용하는테이블정보이다. CREATE TABLE DBTECH.LINEITEM ( L_RDERKEY NUMBER, L_PARTKEY NUMBER, L_SUPPKEY NUMBER, L_LINENUMBER NUMBER, L_QUANTITY NUMBER(15,2), L_EXTENDEDPRICE NUMBER(15,2), L_DISCUNT NUMBER(15,2), L_TAX NUMBER(15,2), L_RETURNFLAG CHAR(1), L_LINESTATUS CHAR(1), L_SHIPDATE DATE, L_CMMITDATE DATE, L_RECEIPTDATE DATE, L_SHIPINSTRUCT CHAR(25), L_SHIPMDE CHAR(10), L_CMMENT VARCHAR(44) ) NLGGING; 2.2. Table Migrator 예제 다음은 Table Migrator 방법으로대용량데이터를이관하는순서이다. 1. migrator.properties 파일에속성값을설정한다. migrator.properties: ####################### # Source DB Connection ####################### 제 2 장대용량데이터이관예제 3

# Source DB type (ptional, generic default RACLE) # RACLE option needs SURCE_LGIN_AS property # GENERIC option needs SURCE_DRIVER property #SURCE_TYPE=RACLE # Source DB JDBC driver class name # Use with SURCE_TYPE=GENERIC option #SURCE_DRIVER=oracle.jdbc.racleDriver # Source DB JDBC connection URL # (ptional, Default=jdbc:oracle:thin:@localhost:1521:orcl) SURCE_URL=jdbc:oracle:thin:@localhost:1521:orcl # Source DB login ID (ptional, Default=sys) #SURCE_USER=sys # Source DB login password (ptional, Default=oracle) #SURCE_PASSWRD=oracle # racle source DB login option (ptional, Default=sysdba) # Use with SURCE_TYPE=RACLE option #SURCE_LGIN_AS=sysdba # Source table schema (ptional) # Default value is the same with SURCE_USER #SURCE_SCHEMA= # Source table name (Mandatory) SURCE_TABLE=source_table_name ####################### # Target DB Connection ####################### # Target DB type (ptional, generic DEFAULT) # GENERIC option needs TARGET_DRIVER property #SURCE_TYPE=DEFAULT # Target DB JDBC driver class name # Use with TARGET_TYPE=GENERIC option #TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver # Target DB JDBC connection URL # (ptional, Default=jdbc:tibero:thin:@localhost:8629:tibero) TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero 4 Tibero 대용량이관가이드

# Target DB login ID (ptional, Default=sys) #TARGET_USER=sys # Target DB login password (ptional, Default=tibero) #TARGET_PASSWRD=tibero # Target table schema (ptional) # Default value is the same with TARGET_USER #TARGET_SCHEMA= # Target table name (ptional) # Default value is the same with SURCE_TABLE #TARGET_TABLE=target_table_name ################# # Data Extractor ################# # Use TSN(or SCN) option (ptional) #SELECT_TSN= # Where conditions (ptional) # ex. column1 > 10 AND column2 = 'abc' #SELECT_CNDITIN= # Fetch size of source table cursor (ptional, Default=1024) # Some DB is not supported this feature. #SELECT_FETCH_SIZE=1024 # Source table partition name (ptional) #SELECT_PARTITIN= # Ignore source/target DB character set (ptional, y N ) #SELECT_AS_BYTE=N ############## # Data Loader ############## # Use direct path loading (ptional, cpl DPL) # CPL means conventional path loading # DPL means direct path loading #INSERT_METHD=DPL # Use batch insert (ptional, Y n) # Use with INSERT_METHD=CPL option #INSERT_BATCH= 제 2 장대용량데이터이관예제 5

# Use parallel loading (ptional, Y n) #INSERT_PARALLEL=Y # Number of data loader thread (ptional, Default=4) # Use with INSERT_PARALLEL=Y option #INSERT_THREAD_CUNT=4 # Target table partition name (ptional) #INSERT_PARTITIN= 참고 1. 전체건수를균등하게나눌수있는조건을검토한다. (SELECT_CNDITIN 부분에설정 ) 2. 만족하는조건이있는경우 SQL문을나눈후에병렬세션 ( 터미널또는다른컴퓨터 ) 으로수행하며 Temp와 Undo Tablespace 사용량의모니터링이필요하다. 2. Background Process 를이용하여병렬프로세싱으로 migrator 를수행한다. run.sh: nohup migrator.sh SURCE_TYPE=RACLE SURCE_URL=jdbc:oracle:thin:@localhost:1521:RCL SURCE_USER=dbtech SURCE_PASSWRD=dbtech SURCE_LGIN_AS=NRMAL SURCE_SCHEMA=dbtech SURCE_TABLE=lineitem TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero TARGET_USER=dbtech TARGET_PASSWRD=dbtech SELECT_CNDITIN="l_linestatus=''" & nohup migrator.sh SURCE_TYPE=RACLE SURCE_URL=jdbc:oracle:thin:@localhost:1521:RCL SURCE_USER=dbtech SURCE_PASSWRD=dbtech SURCE_LGIN_AS=NRMAL SURCE_SCHEMA=dbtech SURCE_TABLE=lineitem TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero TARGET_USER=dbtech TARGET_PASSWRD=dbtech SELECT_CNDITIN="l_linestatus='F'" & 3. 수행결과와로그파일을확인한다. nohup.out: === Parameters === PRPERTY_FILE=migrator.properties SURCE_TYPE=RACLE SURCE_URL=jdbc:oracle:thin:@localhost:1521:RCL SURCE_USER=dbtech SURCE_PASSWRD=************ SURCE_LGIN_AS=NRMAL SURCE_SCHEMA=dbtech SURCE_TABLE=lineitem 6 Tibero 대용량이관가이드

TARGET_TYPE=DEFAULT TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero TARGET_USER=dbtech TARGET_PASSWRD=************ SELECT_CNDITIN=l_linestatus='F' SELECT_FETCH_SIZE=1024 SELECT_AS_BYTE=N INSERT_METHD=DPL INSERT_BATCH=Y INSERT_PARALLEL=Y INSERT_THREAD_CUNT=4 ================== === Parameters === PRPERTY_FILE=migrator.properties SURCE_TYPE=RACLE SURCE_URL=jdbc:oracle:thin:@localhost:1521:RCL SURCE_USER=dbtech SURCE_PASSWRD=************ SURCE_LGIN_AS=NRMAL SURCE_SCHEMA=dbtech SURCE_TABLE=lineitem TARGET_TYPE=DEFAULT TARGET_URL=jdbc:tibero:thin:@localhost:8629:tibero TARGET_USER=dbtech TARGET_PASSWRD=************ SELECT_CNDITIN=l_linestatus='' SELECT_FETCH_SIZE=1024 SELECT_AS_BYTE=N INSERT_METHD=DPL INSERT_BATCH=Y INSERT_PARALLEL=Y INSERT_THREAD_CUNT=4 ================== [E0]1373322363042 - STARTED [E0]1373322363068 - STARTED [L0]1373322363168 Loader started [L1]1373322363172 Loader started [L2]1373322363176 Loader started [L0]1373322363189 Loader started [L1]1373322363192 Loader started [L2]1373322363196 Loader started [L3]1373322363198 Loader started [L3]1373322363215 Loader started [L1] 1000 [L0] 1000 제 2 장대용량데이터이관예제 7

[L3] 1000 [L1] 1000 [L2] 1000 [L0] 1000 [L3] 1000 [L2] 1000...( 중략 ) [L0] 893000 [L3] 617000 [L1] 763000 [L2] 735000 [L0] 725000 [L2] 595000 [E0]1373322793890 - TTAL Extracted RWS: 3004998 [L3]1373322793913 TTAL Loaded RWS: 617366 [L3] 756000 [L0]1373322793921 TTAL Loaded RWS: 893541 [L1]1373322793924 TTAL Loaded RWS: 898889 [L2]1373322793935 TTAL Loaded RWS: 595202 [L2] 736000 [L1] 764000 [L0] 726000 Loading is ended. Elapsed Time : 431636 ADD BATCH : 0 EXECUTE BATCH : 0 [L3] 757000 [L2] 737000 [L1] 765000 [L0] 727000 [L3] 758000 [L2] 738000 [L1] 766000 [L0] 728000 [L3] 759000 [L2] 739000 [L1] 767000 [L0] 729000 [E0]1373322795287 - TTAL Extracted RWS: 2996217 [L1]1373322795290 TTAL Loaded RWS: 767331 [L3]1373322795303 TTAL Loaded RWS: 759888 [L2]1373322795312 TTAL Loaded RWS: 739667 [L0]1373322795314 TTAL Loaded RWS: 729331 Loading is ended. Elapsed Time : 432951 8 Tibero 대용량이관가이드

ADD BATCH : 0 EXECUTE BATCH : 0 2.3. DB Link 예제 DB Link로 insert... select... 구문을수행할때 parallel 힌트를사용하면 select는 serial하게동작하고, insert 일때만 parallel로동작한다. 따라서 DB Link 원본데이터가존재하는서버의사양이좋을경우 parallel 힌트를사용하여 view를생성하고해당 view를 Tibero에서 select하는방식으로이관히면성능향상을기대할수있다. 다음은 DB Link 방법으로대용량데이터를이관하는순서이다. 만약, 세션이 2개일경우동시에수행해야한다. 1. 전체건수를균등하게나눌수있는조건을검토한다. 만족하는조건이있는경우 SQL문을나눈후에병렬세션 ( 터미널또는다른컴퓨터 ) 으로수행하며 Temp 와 Undo Tablespace 사용량의모니터링이필요하다. 2. SQL 문에 append, parallel 힌트를사용한다. append Insert 하는대상테이블에대해서 nologging 옵션이적용되어있어야한다. select logging from user_tables where table_name = 'LINEITEM'; insert /*+ append */ into dbtech.lineitem b select * from lineitem@olink where l_linestatus=''; parallel 힌트를적용하기위해해당세션에 parallel dml 옵션을 enable 해야한다. alter session enable parallel dml; insert /*+ parallel(b 4) */ into dbtech.lineitem b select * from lineitem@olink where l_linestatus=''; 참고 Select 하는부분에병렬수행을적용하기위해서는 DB Link 의테이블에대해서 parallel 을적용한 View 를만들어조회해야한다. 다음은세션이 2 개일경우 DB Lin 를수행하는예이다. 제 2 장대용량데이터이관예제 9

SQL> select l_linestatus, count(*) from dbtech.lineitem group by l_linestatus; L_LINESTATUS CUNT(*) ------------ ---------- F 2996217 3004998 2 rows selected. 세션 1 수행 L_LINESTATUS 가 '0' 에대해서 Insert 한다. SQL> set timing on SQL> alter session enable parallel dml; Session altered. Total elapsed time 00:00:00.005235 SQL> insert /*+ append parallel(b 4) */ into dbtech.lineitem b 2 select * from lineitem@olink where l_linestatus=''; 3004998 rows inserted. Total elapsed time 00:07:07.806974 SQL> commit; Commit completed. Total elapsed time 00:00:00.000307 세션 2 수행 L_LINESTATUS 가 'F' 에대해서 Insert 한다. SQL> set timing on SQL> alter session enable parallel dml; Session altered. Total elapsed time 00:00:00.005235 SQL> insert /*+ append parallel(b 4) */ into dbtech.lineitem b 2 select * from lineitem@olink where l_linestatus='f'; 2996217 rows inserted. 10 Tibero 대용량이관가이드

Total elapsed time 00:07:01.692934 SQL> commit; Commit completed. Total elapsed time 00:00:00.000307 SQL> select count(*) from dbtech.lineitem; CUNT(*) ---------- 6001215 1 row selected. 2.4. tbloader 예제 Load할 SAM 파일을 n등분하고직접로딩과병렬프로세싱을동시에사용한다. 데이터를 Loading하는방식으로디스크에서 wait만발생하지않는다면최적의수행속도가보장된다. tbloader 방법을사용할경우다음의사항에주의한다. Source 데이터의 unload 시간을고려한다. Source 서버에서 Tartget 서버로파일전송시간을고려한다. 다음은 tbloader 방법으로대용량데이터를이관하는순서이다. 1. Unload(spool 또는 unload 유틸을이용하여데이터 unload) 및 SAM 파일을전송한다. 2. Load 할 SAM 파일을 n 등분하여 n 개의 SAM 파일을준비한다. 3. 각 SAM 파일을읽는 n 개의컨트롤파일을작성하고, 작성할때 append 옵션을사용한다. 다음은 2 개의컨트롤파일을작성하는방법이다. lineitem.ctl.aa: load data infile 'lineitem.tbl.aa' logfile 'lineitem.tbl.aa.log' badfile 'lineitem.tbl.aa.bad' append into table lineitem fields terminated by ' ' (L_RDERKEY, 제 2 장대용량데이터이관예제 11

L_PARTKEY, L_SUPPKEY, L_LINENUMBER, L_QUANTITY, L_EXTENDEDPRICE, L_DISCUNT, L_TAX, L_RETURNFLAG, L_LINESTATUS, L_SHIPDATE, L_CMMITDATE, L_RECEIPTDATE, L_SHIPINSTRUCT, L_SHIPMDE, L_CMMENT) lineitem.ctl.ab: load data infile 'lineitem.tbl.ab' logfile 'lineitem.tbl.ab.log' badfile 'lineitem.tbl.ab.bad' append into table lineitem fields terminated by ' ' (L_RDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER, L_QUANTITY, L_EXTENDEDPRICE, L_DISCUNT, L_TAX, L_RETURNFLAG, L_LINESTATUS, L_SHIPDATE, L_CMMITDATE, L_RECEIPTDATE, L_SHIPINSTRUCT, L_SHIPMDE, L_CMMENT) 4. Background Process 를이용하여병렬프로세싱으로 tbloader 를실행하고, tbloder 명령어에 'direct=y dpl_parallel=y' 옵션을사용한다. run.sh: nohup tbloader userid=dbtech/dbtech@tibero control=lineitem.ctl.aa direct=y dpl_parallel=y & 12 Tibero 대용량이관가이드

nohup tbloader userid=dbtech/dbtech@tibero control=lineitem.ctl.ab direct=y dpl_parallel=y & 참고 dpl_parallel 옵션은하나의테이블에대해병렬프로세싱으로 tbloader 를수행할때사용하며 Tibero5 r70450 이후버전에서사용이가능하다. 다음은 2 개의 SAM 파일및컨트롤파일을가지고 tbloader 를수행하는예이다. 세션 1 수행 -- lineitem.tbl.aa.log: tbloader 5 Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. Data File : lineitem.tbl.aa Bad File : lineitem.tbl.aa.bad Table 'LINEITEM' was loaded from the data file. CLUMN_NAME PSITIN DATATYPE ------------------------------ ---------- ---------------- L_RDERKEY 1 CHARACTER L_PARTKEY 2 CHARACTER L_SUPPKEY 3 CHARACTER L_LINENUMBER 4 CHARACTER L_QUANTITY 5 CHARACTER L_EXTENDEDPRICE 6 CHARACTER L_DISCUNT 7 CHARACTER L_TAX 8 CHARACTER L_RETURNFLAG 9 CHARACTER L_LINESTATUS 10 CHARACTER L_SHIPDATE 11 DATE L_CMMITDATE 12 DATE L_RECEIPTDATE 13 DATE L_SHIPINSTRUCT 14 CHARACTER L_SHIPMDE 15 CHARACTER L_CMMENT 16 CHARACTER Table 'LINEITEM' ---------------- 3000608 Rows were requested to load. 3000608 Rows were loaded successfully. 제 2 장대용량데이터이관예제 13

0 Rows were failed to load because of some errors Elapsed time was: 00:00:33.670898 세션 2 수행 -- lineitem.tbl.ab.log: tbloader 5 Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. Data File : lineitem.tbl.ab Bad File : lineitem.tbl.ab.bad Table 'LINEITEM' was loaded from the data file. CLUMN_NAME PSITIN DATATYPE ------------------------------ ---------- ---------------- L_RDERKEY 1 CHARACTER L_PARTKEY 2 CHARACTER L_SUPPKEY 3 CHARACTER L_LINENUMBER 4 CHARACTER L_QUANTITY 5 CHARACTER L_EXTENDEDPRICE 6 CHARACTER L_DISCUNT 7 CHARACTER L_TAX 8 CHARACTER L_RETURNFLAG 9 CHARACTER L_LINESTATUS 10 CHARACTER L_SHIPDATE 11 DATE L_CMMITDATE 12 DATE L_RECEIPTDATE 13 DATE L_SHIPINSTRUCT 14 CHARACTER L_SHIPMDE 15 CHARACTER L_CMMENT 16 CHARACTER Table 'LINEITEM' ---------------- 3000607 Rows were requested to load. 3000607 Rows were loaded successfully. 0 Rows were failed to load because of some errors Elapsed time was: 00:00:33.795058 14 Tibero 대용량이관가이드

성능개선방법 다음은각상황에따른성능개선방법에대한설명이다. Conventional Path Load 방식으로이관할경우 tbloader에서제공하는아래의옵션을사용하여이관한다. 옵션 rows bindsize 설명사용자가대용량데이터를업로드할때 Commit을수행할레코드개수를지정하는파라미터이다. 단, tbloader는성능을고려하여지정한레코드의개수를정확히맞추어서서버로데이터를보내지는않는다. 배열에사용될최대바이트수를지정하는파라미터이다. ( 기본값 : 64KB) Tibero 클라이언트는데이터가지정한크기만큼바인딩되기전까지서버로 업로드되지않으므로대용량의데이터를업로드할때효율적으로사용할 수있다. 인덱스가생성된테이블에데이터를 Upload할경우 Direct Path Load 방식으로데이터를로드할때테이블에존재하는인덱스의생성방법을 MULTI INSERT 방식과 FAST BUILD 방식중에하나선택할수있다. 다음은인덱스생성방법에대한설명이다. 파마리터 MULTI INSERT INDEXES FAST BUILD INDEXES 설명인덱스를여러개의레코드단위로최적화하여한번에생성하는방식이다. 기존의인덱스를무시하고데이터파일의데이터를모두로드하여다시생성하는방식이다. 참고 tbloader 유틸리티를사용하기전에대상테이블에기존데이터가많으면 MULTI INSERT 방식으로 인덱스를생성하는것이유리하고그외는 FAST BUILD 방식이유리하다. 인덱스생성방법을지정하는컨트롤파일의세부내용은다음과같다. control.ctl: LAD DATA... MULTI INSERT INDEXES... (...) 제 2 장대용량데이터이관예제 15