Tibero RDBMS 4 데이터베이스시스템의관리자가작업을수행하기위해필요한관렦유틸리티사용법을알 아보도록한다.
Contents 1. Tibero 4 Utility 소개... 2 2. tbsql... 3 2.1. Tibero 데이터베이스접속을위한홖경설정... 4 2.2. tbsql 접속및종료... 5 2.3. 갂단한 SQL Test... 6 3. tbmigrator... 11 4. tbexport... 15 4.1. 젂체데이터베이스모드로 tbexport... 16 4.2. 사용자모드로 tbexport... 17 4.3. 테이블모드로 tbexport... 18 5. tbimport... 19 5.1. 젂체데이터베이스모드로 tbimport... 20 5.2. 사용자모드로 tbimport... 20 5.3. 테이블모드로 tbimport... 20 6. tbloader... 21 7. tbprof... 27 Update History Date Worker Comments 2011.03.11 박근용문서서식업데이트 2009.10.20 남유짂문서서식업데이트및내용보완 교정 2009.06.20 백서현최초작성 1
1. Tibero 4 Utility 소개 Tibero4 에서제공하고있는 Utility 의종류와기능은다음과같다. tbsql tbmigrator tbexport tbimport tbloader tbprof Tibero에서제공하는텍스트기반대화형 SQL명령어처리기다른 DBMS가구성한데이터베이스젂체또는일부를 Tibero 데이터베이스로옮기는것을도와주는유틸리티논리적인백업을위해제공하는 Tibero export 유틸리티 tbexport에의하여생성된 Export file을 Tibero데이터베이스로 import하는유틸리티대량의데이터를한꺼번에적재하는유틸리티 SQL Trace 파일생성유틸리티 ***Tibero utility 위치 : $TB_HOME/client/bin *** 필수홖경 : java Hot Spot 1.5.0_17 이상 2
2. tbsql Tibero 4 에서제공하고있는텍스트기반대화형 SQL 명령어처리기이다. Tibero 서버가제공하는대부분의기능은 tbsql 을이용하여접근할수있다. 여기서는 tbsql 접속및종료방법과 tbsql 을이용하여수행할수있는기본작업을테스트해본다. [tbsql 도움말확인 ] [tibero:/home/tibero]$tbsql --help Usage: tbsql [options] [logon] [script] options ------- -h,--help -v,--version -s,--silent -i,--ignore Displays this information Displays version information Sets silent mode. Does not display the start-up message, prompts and commands Ignore the logon script (eg, tbsql.login) logon ----- [username[/password[@datasource]]] script ------ @filename[.ext] [parameters] *Option: -h : tbsql정보표시 -v : 버젂정보표시 -s : 프롬프트및명령표시를숨기는자동모드설정 -i : tbsql 실행시세션홖경파일 (tbsql.login) 을무시 3
2.1. Tibero 데이터베이스접속을위한홖경설정 tbsql을통해 Tibero 데이터베이스접속을하기위해서는클라이언트접속설정파일 tbnet_alias.tbr의정보가 Tibero 데이터베이스의정보 ($TB_SID.tip) 와일치하는지확인한다. (Tibero 4 SP1 부터는 tbnet_alias.tbr파일명이 tbdsn.tbr로변경됨.) [ 확인사항 ] IP PORT DB_NAME [$TB_HOME/config/$TB_SID.tip] [tibero:/home/tibero/tibero4/config]$vi tibero.tip #------------------------------------------------------------------------------- # tibero 초기화 parameter #------------------------------------------------------------------------------- DB_NAME=tibero LISTENER_PORT=8629 CONTROL_FILES=/home/tibero/tbdata/c1.ctl DB_CREATE_FILE_DEST=/home/tibero/tbdata DBWR_CNT=1.. 이하생략. [$TB_HOME/client/config/tbnet_alias.tbr] #------------------------------------------------- # /home/tibero/tibero4/client/config/tbnet_alias.tbr # Network Configuration File. tibero=( IP=localhost PORT=8629 DB_NAME=tibero ) 접속정보가올바르게설정되어야 tbsql 을통해 Tibero 데이터베이스에접속할수있다. 4
2.2. tbsql 접속및종료 데이터베이스를 NORMAL 모드로기동시킨후, tbsql SYS 계정으로접속한후종료해본다. [ 접속방법 ] $ tbsql SYS 계정 [tbsql 접속 ] [tibero:/home/tibero]$tbsql sys/tibero tbsql 4 TmaxSoft, Co. Copyright(C) 2001-2009. All rights reserved. Connected to Tibero. SQL> [ 종료방법 ] SQL>exit( or quit) [tbsql 종료 ] SQL> exit Disconnected. 참고로, Tibero 설치시기본적으로제공하는유저는다음과같다. [Tibero default user] sys : DBMS의데이터딕셔너리소유자, 데이터베이스관리자 (super user) DB생성가능 Default password - tibero syscat : 모든권한이 SYS와같으나 DB생성권한은없음. Default password - syscat tibero : sample 사용자계정 Default password - tmax tibero1 : sample 사용자계정 Default password - tmax 5
2.3. 갂단한 SQL Test tbsql SYS 계정으로접속후, 수행할수있는기본작업을테스트한다. [TEST 내용 ] 접속한계정스키마의모든객체보기 datafile경로확인 tablespace 생성 / 생성정보확인 / 삭제 user생성 /Database접속및리소스사용권한생성및삭제 자주사용하는갂단한 SQL명령 2.3.1. 접속한계정스키마에속한모든객체보기 tbsql SYS계정으로서버에접속하여 SYS소유의모든객체를 ls명령어를통해확인한다. SYS 사용자는 Tibero가스스로를관리하기위해내부적으로사용하는수많은객체를가지고있 으므로, 다음처럼매우긴목록이나오게된다. SQL> ls NAME SUBNAME OBJECT_TYPE ------------------------------------ -------------------- -------------------- _GET_PART_BOUND_STR FUNCTION HS$_BASE_CAPS_PK INDEX HS$_BASE_DD_PK INDEX 중갂생략 V$WAITUSE_STAT VIEW V$WAITUSE_THR_STAT VIEW X$USER_ROLE VIEW SQL> ls명령어뒤에는옵션을넣어수행시킬수도있다. 옵션을통해 user가원하는객체만을선 택적으로확인해볼수있다. 옵션으로위치할수있는내용은다음과같다. LS [{FUNCTION INDEX PACKAGE PROCEDURE SEQUENCE SYNONYM TABLE TRIGGER TS USER VIEW}] 단, LS 명령은 tbsql 이사용자편의를위해제공하는명령어이며, Tibero SQL 문장에서지원 하는명령은아니다. 즉, tbsql 이아닌 JDBC, CLI 등을이용하여접속하였을경우이명령을 사용할수없다. 6
2.3.2. datafile 경로확인 Datafile 의경로확인은 DBA_DATA_FILES 뷰를통해확인할수있다. SQL> SELECT file_name FROM DBA_DATA_FILES; FILE_NAME -------------------------------------------------------------------------------- /home/tibero/tbdata/system001.tdf /home/tibero/tbdata/undo001.tdf /home/tibero/tbdata/usr001.tdf 3 rows selected. 2.3.3. tablespace 생성 / 생성정보확인 / 삭제 1) tablespace 생성 SQL> CREATE TABLESPACE test_tb DATAFILE '/home/tibero/tbdata/test_tb.tdf' SIZE 10M AUTOEXTEND ON NEXT 1M MAXSIZE 512M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; Tablespace created. 2) 생성된 tablespace의정보확인 SQL> SELECT A.FILE_NAME, A.TABLESPACE_NAME, BYTES/1024/1024 'M' "SIZE" FROM DBA_DATA_FILES A, DBA_TABLESPACES B WHERE A.FILE_ID = B.TS_ID AND A.TABLESPACE_NAME = 'TEST_TB'; FILE_NAME TABLESPACE_NAME SIZE ------------------------------------- ----------------------- ---------------------- /home/tibero/tbdata/test_tb.tdf TEST_TB 10M 1 row selected. 3) tablespace 삭제 DROP TABLESPACE test_tb INCLUDING CONTENTS AND DATAFILES; 7
2.3.4. user 생성 /Database 접속및리소스사용권한생성및삭제 1) user 생성 SQL> CREATE USER test IDENTIFIED BY test; User 'TEST' created. 2) Database 접속및리소스사용권한생성 SQL> GRANT RESOURCE, CONNECT TO test; Granted. 3) user 삭제 SQL> DROP USER test CASCADE; User 'TEST' dropped. 8
2.3.5. 자주사용되는갂단한 SQL 명령 1) set 홖경설정 현재 tbsql 에대한홖경설정값은 show all 명령어를통해볼수있다. SQL> show all SYSTEM PARAMETERS ------------------- autocommit OFF autotrace OFF blockterminator "." comment ON ddlstats OFF define ON editfile ".tbedit.sql" escape "\" feedback ON fileext "sql" filepath "" history 50 linesize 80 long 80 numwidth 10 outputsize 1024 pagesize 24 profile OFF prompt "SQL> " sqlterminator ";" serveroutput OFF time OFF timing OFF trimout ON trimspool OFF 셋팅된값을변경하기위해서는다음과같이실행시킨다. 한페이지당표시되는라인수 ( 기본값 24) SQL> SET PAGESIZE 100 한줄에표시될텍스트숫자 ( 기본값 80) SQL> SET LINESIZE 150 sql쿼리실행시갂을확인 ( 기본값 OFF) SQL> SET TIMING ON 현재시갂을표시 ( 기본값 OFF) SQL> SET TIME ON 수행중인쿼리의실행계획이나통계정보출력 ( 기본값 OFF) SQL> SET AUTOTRACE ON 9
tbpsm 수행결과를화면에출력하기위한명령어 ( 기본값 OFF) SQL> SET SERVEROUTPUT ON 2) SQL 파일실행 SQL> start 파일명 (or @ 파일명 ) 3) 버퍼에저장되어있는내용편집 SQL> ed 4) OS 명령어실행 SQL>!OS 명령어 (or host OS 명령어 ) 5) 이젂명령실행 SQL> /(or run) 6) 화면내용저장 (spool off 까지의내용저장 ) SQL>spool 파일명 SQL>spool off 7) 명령어도움말보기 SQL> help 명령 8) 표시되는컬럼사이즈조젃 SQL> column 컬럼명 format a20 9) 숫자출력포맷조젃 SQL> column 컬럼명 format 999,999 10
3. tbmigrator tbmigrator는다른데이터베이스에저장된테이블, 인덱스뷰등의스키마객체와내장 SQL(Embedded SQL), PSM 프로그램등을 Tibero데이터베이스로옮겨이젂의데이터베이스에서와같은기능을수행하도록한다. [tbmigrator에서제공하는기능 ] 타 DBMS의데이터및응용프로그램을 Tibero로마이그레이션 테이블, 인덱스, 뷰, 동의어등의데이터베이스오브젝트와테이블에정의된각종제약조건을마이그레이션 사용자특권 (privilege) 및역할 (role) 을마이그레이션 마이그레이션대상데이터베이스에대한정보제공 *** 자세한사항은 Tibero RDBMS Utility_tbMigratior 기술백서참조 11
3.1. tbmigrator 설치및실행 3.1.1. 설치 별도의라이센스없이 $TB_HOME/client/bin/tbmigrator.zip 파일의압축을풀면바로설치됨 [tbmigrator 설치에필요한클래스라이브러리 ] tbmigrator 클래스파일 : tbmigrator.jar Tibero 유틸리티공통라이브러리 : tbtoolcom.jar Tibero JDBC 드라이버 : tibero-jdbc.jar 마이그레이션대상데이터베이스의 JDBC *** 마이그레이션작업시 tbmigrator 홈 \plugins\tbmigrator_xxx\libs\ 밑에필요한.jar 파일 을가져다놓아야함. 3.1.2. 실행 1) 실행하려는해당 OS에맞는디렉토리로이동후 tbmigrator 실행파일을실행 2) tbmigrator는 JAVA 로구현되어있으며, JVM( java Virtual Machine) 이설치되어있는어떤플랫폼에서도바로운용가능 Source DB 접속정보와 Target 접속정보를입력하여마이그레이션작업할스키마를선택한후 Migrate 버튺을누르면작업이실행된다. *** 실행화면에대한자세한사항은 Tibero RDBMS Utility_tbMigratior 기술백서를참조한다. 12
3.1.3. tbmigrator 옵션 1) Execute DDL : 타 DBMS에서추출한 DDL문을 Tibero에서실행함. 2) Migrate Table Rows : Table 데이터마이그레이션 3) Migrate Option Multi Thread Count : 테이블데이터를병렧적으로마이그레이션하기위해사용하는쓰레드의개수 Table Rows : 지정한로우수만큼만마이그레이션하기위해사용 Table Name Condition : 특정한조건의테이블을마이그레이션하기위하여사용하는선별조건으로 SQL 질의조건의형태로지정 Insert Table Data by One Row : row by row로 single row insert 기능 Use Direct Path Load : 버퍼캐시를통하지않고데이터파일에직접기록 4) Data Type Read as Byte : 마이그레이션할때 byte 단위로읽어서처리 LONG to CLOB : 오라클 LONG 타입을테베로 CLOB 타입으로마이그레이션 LONGRAW to BLOB : 오라클 LONG RAW 타입을테베로 BLOB 타입으로마이그레이션. 3.1.4. 수행순서 TABLESPACE ROLE USER SYSTEM PRIVLEGE PUBLIC SYNONYM SEQUENCE TABLE NORMAL INDEX CONSTRAINT SYNONYM VIEW BITTMAPPED, FUNCTION INDEX REFERENTIAL CONSTRAINT TABLE DATA PSM OBJECT PRIVILEGE 13
3.1.5. 출력로그 1) DDL 로그 마이그레이션짂행중에수행하는모든 DDL 문장을로깅한다. 스크립트파일은 sql 의형태로 tbsql 에서그대로사용할수있다. 로그파일의형식 : mig_script_ yy_mm_dd_hhmmss.sql CREATE TABLESPACE "USERS" DATAFILE 'users01.dbf' SIZE 6291456 AUTOEXTEND ON NEXT 1310720 MAXSIZE 34359721984 / CREATE TABLESPACE USERS DATAFILE 'users01.dbf' SIZE 6291456 AUTOEXTEND ON NEXT 1310720 MAXSIZE 34359721984 / CREATE ROLE CONNECT IDENTIFIED BY password / 2) 짂행상황로그 마이그레이션을짂행하면서발생하는모든정보를기록한다. 기록하는내용 - 시작 / 종료시갂정보 - 오브젝트생성정보 ( 오브젝트생성이실패하게되면 * 표시와함께에러메시지를표시한다.) - 테이블데이터마이그레이션정보 마이그레이션젂후의테이블로우의개수를비교하여해당테이블의마이그레이션 성공여부를표시한다. 로그파일의형식 migration_ yy_mm_dd_hhmmss.log TiBero Version: 3.x - Tmax Data, Co. Copyright(C) 2001-2007. About to migrate: Thu Jul 12 15:33:25 KST 2007 ----- Migrate TABLESPACE ----- TABLESPACE."TS_TBS" is created successfully. [TABLESPACE(S) GENERATED]It took 64515[ms] ----- Migrate ROLE ----- CREATE ROLE CONNECT IDENTIFIED BY password CREATE ROLE RESOURCE IDENTIFIED BY password.. 14
4. tbexport Tibero 데이터베이스에저장된스키마객체젂체또는일부를 SQL 문장형태로추출하여 tbexport 에서정의한고유형식을갖는파일에저장한다.( 논리적인백업 ) [tbexport 모드종류 ] 젂체데이터베이스모드 [FULL] 사용자모드 [USER] 테이블모드 [TABLE] [tbexport 파라미터확인 ] tbexport 를실행하기위한기본적인명령어라인의파라미터에대한정보 [tibero:/home/tibero]$tbexport tbexport tbexport 4.0 - TmaxSoft, Co. Copyright(C) 2001-2009. Usage: tbexport [PARAMETER1=VALUE] [PARAMETER2=VALUE]... Parameters: CFGFILE Config file name USERNAME Database user name PASSWORD User password IP IP address, default: localhost PORT PORT number, default: 8629 FILE Export dump file name, default: default.dat NO_PACK_DIR OVERWRITE Overwrite datafile if same file name exists: Y/N, default: N LOG Export log file name FULL Full Mode: Y/N, default: N USER User Mode: user name list TABLE Table Mode: table name list QUERY INDEX Export Index: Y/N, default: Y GRANT Export Grant: Y/N, default: Y CONSTRAINT Export Constraint: Y/N, default: Y ROWS Export Table Rows: Y/N, default: Y SCRIPT LOG THE DDL SCRIPT: Y/N, default: N THREAD_CNT Thread Count, default: 4 SERVER_VER Tibero Server Version, default: 4 PARALLEL_DEGREE Option of parallel hint, default: 0 (NOT PARALLEL) Export unpacked dump files to specified directory. If this option is specified, FILE parameter will be ignored. Where predicate: (Optional) to filter data to be exported(must be used with TABLE parameter) 15
4.1. 젂체데이터베이스모드로 tbexport SYS 사용자를제외한모든사용자의오브젝트를추출한다. DBA 권한을가짂사용자만가능하 다. [Syntax] tbexport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_full.dat LOG=exp_data_full.log FULL=y SCRIPT=y 위 tbexport에서사용한파라미터는 ip가 localhost이고 port가 8629인 Tibero server에 SYS 계정으로접속하여 SYS사용자를제외한모든사용자의오브젝트를추출하여 exp_data_full.dat파일에저장하고, 이에대한각오브젝트에대한 DDL문을 script로 log파일에저장하겠다는의미이다. 수행시키면아래와같이 export 작업이수행된다. tbexport tbexport 4.0 - TmaxSoft, Co. Copyright(C) 2001-2009. the entire database: Wed Oct 07 13:43:21 KST 2009 Export character set: MSWIN949 exporting tablespaces. 중갂생략 exporting schema: "TIBERO" exporting constraints exporting schema: "TIBERO1" exporting constraints exporting referential constraints Packing the file... Export completed successfully: Wed Oct 07 13:43:26 KST 2009 Export된파일을확인해보면다음과같이생성되었다. [tibero:/home/tibero]$ls -lrt exp_data_full.* -rw-r--r-- 1 tibero4 tmax 45443 10월 7 13:43 exp_data_full.log -rw-r--r-- 1 tibero4 tmax 163840 10월 7 13:43 exp_data_full.dat Export 받은 exp_data_full.dat 파일은이짂파일이며, exp_data_full.log 파일은텍스트파일로 export log 가기록되어있다. Export 가정상적으로수행되었는지확인하려면 log 파일을분석 하면된다. 16
4.2. 사용자모드로 tbexport Export 대상사용자를지정하고지정한사용자가소유한모든스키마정보를추출한다. DBA 는하나이상의사용자를지정할수있다. [Syntax] tbexport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_user.dat LOG=exp_data_user.log USER=tibero SCRIPT=y 수행시키면아래와같이 Export 작업이수행된다. tbexport tbexport 4.0 - TmaxSoft, Co. Copyright(C) 2001-2009. the USER: tibero: Wed Oct 07 13:48:53 KST 2009 Export character set: MSWIN949 exporting schema: "TIBERO" exporting constraints exporting referential constraints Packing the file... Export completed successfully: Wed Oct 07 13:48:55 KST 2009 [tibero:/home/tibero]$ Export 된파일을확인해보면다음과같이생성되었다. [tibero:/home/tibero]$ls -lrt exp_data_user.* -rw-r--r-- 1 tibero4 tmax 6063 10 월 7 13:48 exp_data_user.log -rw-r--r-- 1 tibero4 tmax 40960 10 월 7 13:48 exp_data_user.dat 17
4.3. 테이블모드로 tbexport 하나이상의지정한테이블과연관된인덱스등의데이터베이스오브젝트를함께추출한다. 테이블지정시소유자도명시해야한다. [Syntax] tbexport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_table.dat LOG=exp_data_table.log TABLE=tibero.employee SCRIPT=y 수행시키면아래와같이 export 작업이수행된다. Export 된파일을확인해보면다음과같이생성되었다.. tbexport tbexport 4.0 - TmaxSoft, Co. Copyright(C) 2001-2009. the TABLE: tibero.employee: Wed Oct 07 13:52:10 KST 2009 Export character set: MSWIN949 exporting table: "TIBERO"."EMPLOYEE" [0] EMPLOYEE 20 rows exported. CREATE TABLE "EMPLOYEE" ( "EMP_NO" VARCHAR(8), "EMP_NAME" VARCHAR(20), "HIREDATE" DATE, "SALARY" NUMBER(8,3), "BONUS" NUMBER(8,3), "DEPT_CD" VARCHAR(4), "MANAGER" VARCHAR(8) ) TABLESPACE "USR" PCTFREE 10 INITRANS 2 / exporting indexes CREATE UNIQUE INDEX "EMPLOYEE_PK" ON "EMPLOYEE" ( "EMP_NO" ASC ) LOGGING TABLESPACE "USR" PCTFREE 20 INITRANS 2 / exporting constraints ALTER TABLE "EMPLOYEE" ADD CONSTRAINT "EMPLOYEE_PK" PRIMARY KEY ( "EMP_NO" ) / ALTER TABLE "EMPLOYEE" MODIFY "EMP_NO" NOT NULL / Packing the file... Export completed successfully: Wed Oct 07 13:52:12 KST 2009 [tibero:/home/tibero]$ls -lrt exp_data_table.* -rw-r--r-- 1 tibero4 tmax 1259 10 월 7 13:52 exp_data_table.log -rw-r--r-- 1 tibero4 tmax 20480 10 월 7 13:52 exp_data_table.dat 18
5. tbimport tbexport에의하여생성된 export file로부터스키마객체를 Tibero데이터베이스에저장하는유틸리티이다. 예제는앞서설명한 tbexport에서생성한 export file을이용하여 import해보도록한다. [tbimport 모드종류 ] 젂체데이터베이스모드 [FULL] 사용자모드 [USER] 테이블모드 [TABLE] [tbimport 파라미터확인 ] tbimport 를실행하기위한기본적인명령어라인의파라미터에대한정보 tbimport tbimport 4.0 - TmaxSoft, Co. Copyright(C) 2001-2009. Usage: tbimport [PARAMETER1=VALUE] [PARAMETER2=VALUE]... Parameters: CFGFILE Config file name USERNAME Database user name PASSWORD User password IP IP address, default: localhost PORT PORT number, default: 8629 FILE Import dump file name, default: default.dat NO_PACK_DIR Import unpacked dump files from specified directory. If this option is specified, FILE parameter will be ignored. LOG Import log file name FULL Full Mode: Y/N, default: N USER User Mode: user name list FROMUSER FromUser touser Mode: user name list(must be used with TOUSER parameter) TOUSER FromUser touser Mode: user name list(must be used with FROMUSER parameter) TABLE Table Mode: table name list INDEX Import Index: Y/N, default: Y GRANT Import Grant: Y/N, default: Y CONSTRAINT Import Constraint: Y/N, default: Y ROWS Import Table Rows: Y/N, default: Y DPL Use Direct Path Load: Y/N, default: N PIPELINING Use pipelined import(must be used with DPL parameter): Y/N, default: N SCRIPT LOG THE DDL SCRIPT: Y/N, default: N THREAD_CNT Thread Count, default: 4 SERVER_VER Tibero Server Version, default: 4 IGNORE Ignore create error due to object existence: Y/N, default: N IO_BUF_SIZE Specify the buffer size of file I/O, default: 16M(16777216) BIND_BUF_SIZE Specify the buffer size of DPL stream, default: 1M(1048576) 19
5.1. 젂체데이터베이스모드로 tbimport 젂체데이터베이스모드는 export한파일로부터 Tibero데이터베이스젂체를 import하는모드로, DBA만이사용할수있는모드이며 SYS 사용자를제외한모든사용자의객체를 import하기위해사용한다. [Syntax] tbimport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_full.dat LOG=imp_data_full.log FULL=y SCRIPT=y 5.2. 사용자모드로 tbimport 사용자모드는 export한파일로부터지정한사용자에대하여그사용자가소유하고있는모든스키마객체를 import하는모드로, DBA는하나이상의사용자에대하여이모드를사용가능하다. [Syntax] 1) export 한 user 에서동일 user 로 import 할때 tbimport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_user.dat LOG=imp_data_user.log USER=tibero SCRIPT=y 2) export 한 user 가아닌다른 user 에게로 import 할때 tbimport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_user.dat LOG=imp_data_user.log FROMUSER=tibero TOUSER=tibero1 SCRIPT=y 5.3. 테이블모드로 tbimport 테이블모드는 export한파일로부터하나이상의테이블을지정하여그테이블과연관된인덱스등의스키마객체들을함께 import하는모드이다. 테이블모드를사용하기위해서는 TABLE= tablelist 형태로파라메터를설정하며, 주의해야할점은테이블을소유한사용자를반드시명시해야한다. ( 예를들어, TIBERO.EMPLOYEE) 만약 FROMUSER/TOUSER를함께사용할경우에는테이블소유자를명시하지않고작성한다. [Syntax] 1) export 한 user 에서동일 user 로 import 할때 tbimport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_table.dat LOG=imp_data_table.log TABLE=tibero.employee SCRIPT=y 2) export 한 user 가아닌다른 user 에게로 import 할때 tbimport USERNAME=sys PASSWORD=tibero IP=localhost PORT=8629 FILE=exp_data_table.dat LOG=imp_data_table.log FROMUSER=tibero TOUSER=tibero1 TABLE=employee SCRIPT=y 20
6. tbloader 컬럼데이터만일반텍스트파일로만들어서한꺼번에적재하는유틸리티이다. (insert SQL 문을일일이만들어작성할필요가없다.) 데이터를로드하는방법은다음과같다. [ 데이터로드방법 ] Conventional Path Load 사용자가지정한데이터파일을읽어가며, 컬럼데이터를읽어한개의레코드마다직접 insert문을통하여데이터를데이터베이스서버에로드시킴. Direct Path Load 지정한데이터파일을읽어가며, 특정컬럼의데이터타입에맞게데이터를컬럼배열 (column array) 형태로만든다. 컬럼배열형태의데이터는 block formatter을거쳐서 Tibero데이터베이스 block형태에맞게만들어지고, 이블록을직접 Tibero 데이터베이스에쓰게된다. 21
6.1. tbloader tbloader 유틸리티사용시필요한입출력파일작성방법과파라미터에대해설명한다. [ 필요한입출력파일 ] 컨트롤파일 [Control File] 데이터파일 [Data File] 로그파일 [Log File] 오류파일 [BadFile] -입력파일 -입력파일 -출력파일 -출력파일 6.1.1. 컨트롤파일 (Control File) tbloader 의실행을위한파라메터를지정한파일이다. [ 컨트롤파일형식과파라미터설명 ] LOAD DATA [CHARACTERSET characterset_name] --문자셋지정 [INFILE data_file_name] --데이터파일지정 [LOGFILE log_file_name] --로그파일지정 [BADFILE bad_file_name] --오류파일지정 [APPEND REPLACE TRUNCATE] --테이블에존재하는기존데이터처리방법을기술 INTO TABLE table_name --테이블지정 [FIELDS [TERMINATED BY field_terminator] --필드종료자지정 [OPTIONALLY ENCLOSED BY enclosed_by_start_string --필드의값의시작과끝을감쌀문자열을지정 [AND enclosed_by_end_string]] --필드의값의시작과끝을감쌀문자열을지정 [ESCAPED BY escaped_by_string] --특수문자또는문자열을읽을수있도록지정 [LINES [STARTED BY line_start_string] --라인시작문자열지정 [TERMINATED BY line_terminator_string] --라인종료문자열지정 ] [IGNORE number LINES] --데이터파일에서무시할라인의개수를지정 (column_name [POSITION(from:to)] [OUTFILE] [CONSTANT constant_value], --컬럼상수값지정...)] 단, 컨트롤파일에서정한위의형식의순서대로사용해야하고, [ 와 ] 로감싸짂부분은생 략가능한선택적인부분이다. 22
6.1.2. 데이터파일 (Data File) 데이터베이스의테이블에저장할데이터가들어있는텍스트파일이며, 다음두가지형식이 있다. 1) 고정된레코드형태 (Fixed Record Format) : 컨트롤파일에서모든컬럼에대해 Position정보를명시하였을경우적용되는형식 2) 분리된레코드형태 (Separated Record Format) : 컨트롤파일에서모든컬럼에대해 Position정보를명시하지않았을경우적용되는형식 6.1.3. tbloader 실행 [Syntax] tbloader userid= 계정 @DB 명 control= 컨트롤파일위치 [tbloader 파라미터확인 ] [tibero:/home/tibero]$tbloader tbloader Version: 3.0 - TmaxSoft, Co. Copyright(C) 2001-2009. Usage: tbloader [OPTIONS] OPTIONS: userid tibero userid/passwd@dbname control control file name log log file name bad bad file name data data file name skip skip lines in data file[default:0] direct direct path load[default:n] dpl_log enable direct path load logging[default:n] message loading progress message to stdout readsize read buffer size bindsize bind buffer size errors errors to allow(default:50) rows rows per commit multithread use multithread for dpl(default:y) Example: tbloader userid=tibero/tmax@dbname control=sample.ctl bindsize=1000000 6.1.4. 로그파일과오류파일확인 tbloader 실행후생성되는출력파일인로그파일 (.log) 과오류파일 (.bad) 파일을확인한다. 1) 로그파일 : tbloader 의실행과정을기록한파일 2) 오류파일 : tbloader 의실행시로드에실패한레코드의데이타를기록한파일 23
6.2. tbloader TEST [ 테스트시나리오 ] 1) 테이블을생성한다. 2) 컨트롤파일을작성한다. 3) 데이터파일을작성한다. 4) 명령어를실행한다. 5) 실행결과로그파일과오류파일을체크한다. * 테이블생성 - 공통 해당데이터베이스명은 tibero 이며, 테이블의소유자는 tibero/tmax 라고가정한다. CREATE TABLE MEMBER ( ID NUMBER(4) NOT NULL, NAME VARCHAR(15), JOB VARCHAR(9), BIRTHDATE DATE, CITY VARCHAR(10), PICTURE BLOB, AGE NUMBER(3), RESUME CLOB); CREATE TABLE CLUB( ID NUMBER(6) NOT NULL, NAME VARCHAR(10), MASTERID NUMBER(4)); 24
6.2.1. 분리된레코드데이터파일형태일경우 1) 컨트롤파일을작성한다.(sample1.ctl) LOAD DATA INFILE './sample1.dat' APPEND INTO TABLE club FIELDS TERMINATED BY ', ' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY ' \n' IGNORE 1 LINES (id,name, masterid) 2) 데이터파일을작성한다.(sample1.dat) id name masterid 111111, FC-SNIFER, 2345 Dkkkkkkkk 11112, "DOCTOR CLUBE ZZANG", 2222 11113, "ARTLOVE", 3333 11114, FINANCE, 1235 11115, "DANCE MANIA", 2456 3) 실행 $ tbloader userid=tibero/tmax@tibero control=./sample1.ctl 4) 로그파일및오류파일확인 [ 로그파일 ] sample1.log [tibero:/home/tibero]$cat sample1.log tbloader : Release 4.0 TmaxSoft, Co. Copyright(C) 2001-2009. Data File :./sample1.dat Bad File :./sample1.bad Table CLUB was loaded from Data File. Column Name Position DataType ------------------------------ ---------- ------------ ID 1 NUMERIC EXTERNAL NAME 2 CHARACTER MASTERID 3 NUMERIC EXTERNAL Record 2 - rejected. Cause - TBR-80053 : Some relatively positioned columns are not present in the record. Record 3 - rejected. Table CLUB, Error in column NAME Cause - TBR-80025 : Column data exceeds data buffer size. Record 6 - rejected. Table CLUB, Error in column NAME Cause - TBR-80025 : Column data exceeds data buffer size. Table CLUB: 3 Rows successfully loaded. 3 Rows not loaded due to data errors Elapsed time was: 00:00:00.086783 25
[ 오류파일 ] sample1.bad [tibero:/home/tibero]$cat sample1.bad Dkkkkkkkk 11112, "DOCTOR CLUBE ZZANG", 2222 11115, "DANCE MANIA", 2456 6.2.2 고정된레코드데이터파일형태일경우 1) 컨트롤파일을작성한다.(sample2.ctl) LOAD DATA INFILE './sample2.dat' APPEND INTO TABLE MEMBER (id position (01:04), name position (06:12), job position(13:20), birthdate position(21:31), city position(32:36), age position(37:38)) 2) 데이터파일을작성한다.(sample2.dat) 7777 KKS CHAIRMAN 1975-11-18 SEOUL 33 7839 BSH MANAGER 1982-11-18 BUSAN 28 7934 MILLER CLERK 1967-01-24 BUSAN 37 7566 JONES MANAGER 7499 ALLEN SALESMAN ddddddddd KYUNG-JU aaaa7654 MARTIN SALESMAN 3) 실행 $ tbloader userid=tibero/tmax@tibero control=./sample2.ctl 4) 로그파일및오류파일확인 tbloader 실행후생성된 sample2.log 파일과 sample2.bad 파일을직접확인해보도록한다. 26
7. tbprof SQL 실행정보를 profiling 하기위한 SQL trace 파일은정적혹은동적으로 SQL_TRACE 파 라미터를적용하여생성할수있다. SQL_TRACE = Y N (Default : N) [tbprof 파라미터확인 ] $tbprof Usage: tbprof tracefile outputfile [print= ] [sort= ] [aggregate= ] print=integer List only the first 'integer' SQL statements. sys=yes no Filter SQL statements that 'SYS' user executes. aggregate=yes no Aggregate statistics of same SQL statements. sort=option Set of zero or more of the following sort options: prscnt number of times parse was called prscpu cpu time parsing prsela elapsed time parsing prsdsk number of disk reads during parse prsqry number of buffers for consistent read during parse prscu number of buffers for current read during parse execnt number of execute was called execpu cpu time spent executing exeela elapsed time executing exedsk number of disk reads during execute exeqry number of buffers for consistent read during execute execu number of buffers for current read during execute exerow number of rows processed during execute fchcnt number of times fetch was called fchcpu cpu time spent fetching fchela elapsed time fetching fchdsk number of disk reads during fetch fchqry number of buffers for consistent read during fetch fchcu number of buffers for current read during fetch fchrow number of rows fetched userid userid of user that parsed the cursor tracefile : SQL Trace의해생성된통계정보를가짂파일명 outputfile : tbprof를통해읽기가능한텍스트파일로생성할파일명 print : 지정된수의 SQL문에대해서만 TRACE결과를 PRINT함. (Default : ALL) sys : SYS유저가내부적인작업을위해실행한 SQL문을출력시포함여부 (Default : yes) aggregate : 같은 SQL에대한정보를합산할지여부를지정하는파라미터 (Default : no) sort : 결과정렧방식을지정하는파라미터. (SORT_OPTION에따라결과들을내림차순으로정렧함. 여러개동시지정가능하며필드는 ',' 로구분하고공백이있으면안됨.) *** 사용법에관한자세한사항은 Tibero Utility_tbPROF 기술백서참조할것. 27
Information Intelligence, Tibero