Tibero 업그레이드가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved.
Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 ) 463-824 Restricted Rights Legend All TmaxData Software (Tibero ) and documents are protected by copyright laws and international convention. TmaxData software and documents are made available under the terms of the TmaxData 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 TmaxData Co., Ltd. 이소프트웨어 (Tibero ) 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TmaxData Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TmaxData 의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tibero is a registered trademark of TmaxData Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tibero 는 TmaxData Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. 안내서정보안내서제목 : Tibero 업그레이드가이드발행일 : 2013-06-20 소프트웨어버전 : Tibero 5 안내서버전 : 2.1.1
내용목차 안내서에대하여... vii 제1장 Tibero 4 SP1 to Tibero 5... 1 1.1. 개요... 1 1.2. 사전준비사항... 1 1.3. Source DB(Tibero 4 SP1) 작업... 2 1.3.1. 체크리스트및체크방법... 2 1.3.2. Export 수행... 12 1.4. Target DB(Tibero 5) 작업... 13 1.4.1. 설치... 13 1.4.2. Import 수행... 15 1.4.3. 후처리... 16 1.5. 검증... 19 1.6. I/F Driver 변경... 20 1.6.1. JDBC... 20 1.6.2. ODBC 및 OLE DB... 21 1.6.3. 기타 (DB Link, EXTERNAL 등 )... 22 1.7. 주의사항... 22 Tibero iii
그림목차 [ 그림 1.1] 전환구성도... 1 Tibero v
안내서에대하여 안내서의대상 본안내서는메이저버전을업그레이드하고자하는모든데이터베이스사용자를대상으로한다. 안내서의전제조건 본안내서는메이저버전을업그레이드하는과정을설명한안내서이다. 따라서본안내서를원활히이해하기위해서는다음과같은사항을미리알고있어야한다. 데이터베이스의이해 RDBMS의이해 운영체제및시스템환경의이해 UNIX 계열 (Linux 포함 ) 의기본지식 안내서의제한조건 본안내서는 Tibero 를실무에적용하거나운용하는데필요한모든사항을포함하지않는다. 안내서에대하여 vii
안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값 옵션인수값 viii Tibero 업그레이드가이드
제 1 장 Tibero 4 SP1 to Tibero 5 본장에서는 Tibero 4 SP1 에서 Tibero 5 로업그레이드하는방법을설명한다. 1.1. 개요 Tibero 4 SP1에서 Tibero 5로업그레이드는논리적백업및복구 (exp 및 imp) 를이용한다. 다음은 Tibero 4 SP1에서 Tibero 5로전환하는구성도이다. [ 그림 1.1] 전환구성도 1.2. 사전준비사항 Tibero 유틸리티 exp 및 imp를사용하므로 JDK 1.5.17 이상 (JDK 1.6 권장 ) 이설치되어야한다. exp 및 imp 덤프파일을생성, 복사할충분한디스크공간이필요하다. Tibero의 SYS 계정또는 DBA 계정이필요하다. 제 1 장 Tibero 4 SP1 to Tibero 5 1
1.3. Source DB(Tibero 4 SP1) 작업 본절에서는 Source DB인 Tibero 4 SP1의업그레이드진행을위한작업절차를설명한다. 작업절차는다음과같은순서로진행한다. 1. 체크리스트및체크방법 2. Export 수행 각과정에대한상세한설명은해당절의내용을참고한다. 1.3.1. 체크리스트및체크방법 Tibero 4 SP1에서 Tibero 5로업그레이드하기위해다음의항목들을체크한다. CHARACTERSET Redo 확인 Undo 확인 Temp Tablespace 확인 User Tablespace 확인 로그모드확인 컨트롤파일확인 JOB 확인 DB Link 확인 (Tibero to Tibero, Tibero to Oracle 등 ) External Procedure 사용여부확인 Wrapped PSM(PL/SQL) 확인 디렉터리확인 Object Count 확인 Constraint 확인 컬럼암호화 (DBMS_OBFUSCATION_TOOLKIT) 사용여부확인 체크리스트항목에대한체크방법은다음과같다. 각항목의모든체크작업은 DBA 계정으로한다. CHARACTERSET NLS_CHARACTERSET과 NLS_NCHAR_CHARACTERSET의 VALUE를확인한다. TARGET DB를생성할경우해당내용에맞춰생성한다. 2 Tibero 업그레이드가이드
SQL> SET LINESIZE 120 SQL> COL name FOR a30 SQL> COL value FOR a20 SQL> SELECT name, value FROM sys._dd_props WHERE name like '%CHARACTERSET%' ORDER BY 1; NAME VALUE ------------------------------ ---------- NLS_CHARACTERSET MSWIN949 NLS_NCHAR_CHARACTERSET UTF16 Redo 확인각로그그룹별 MEMBER 및각그룹별 size(mb) 와 MEMBERS를확인한다. SQL> SET LINESIZE 120 SQL> COL member FOR a50 SQL> SELECT * FROM v$logfile; GROUP# STATUS TYPE MEMBER ---------- ------- ------ ----------------------------- 0 ONLINE /data2/tb4/tbdata/log001.log 0 ONLINE /data2/tb4/tbdata/log002.log 1 ONLINE /data2/tb4/tbdata/log003.log 1 ONLINE /data2/tb4/tbdata/log004.log 2 ONLINE /data2/tb4/tbdata/log005.log 2 ONLINE /data2/tb4/tbdata/log006.log SQL> SELECT group#, bytes/1024/1024 as "size(mb)", members, archived FROM v$log; GROUP# size(mb) MEMBERS ARCHIVED ---------- ---------- ---------- -------- 0 50 2 NO 1 50 2 NO 2 50 2 NO Undo 확인 DB에서사용중인 UNDO의 TABLESPACE_NAME과해당 TABLESPACE가사용중인데이터파일의 FILE_NAME, size, maxsize, AUTOEXTENSIBLE을확인한다. SQL> SET LINESIZE 120 SQL> COL tablespace_name FOR a20 제 1 장 Tibero 4 SP1 to Tibero 5 3
SQL> COL file_name FOR a50 SQL> SELECT tablespace_name FROM dba_tablespaces WHERE contents = 'UNDO'; TABLESPACE_NAME ---------------- UNDO SQL> show parameter UNDO_TABLESPACE; NAME TYPE VALUE ------------------- -------- ----------- UNDO_TABLESPACE STRING UNDO SQL> SELECT tablespace_name, file_name, bytes/1024/1024 "size(mb)", maxbytes/1024/1024 "maxsize(mb)", autoextensible FROM dba_data_files WHERE tablespace_name like 'UNDO%'; TABLESPACE_NAME FILE_NAME size(mb) maxsize(mb) AUTOEXTENSIBLE --------------- ---------------------------- -------- ----------- -------------- UNDO /data2/tb4/tbdata/undo001.tdf 400 1024 YES Temp Tablespace 확인 Temp 파일을쓰고있는 TABLESPACE_NAME 및해당파일의 FILE_NAME, size, AUTOEXTENSIBLE, maxsize를확인한다. SQL> SET LINESIZE 150 SQL> COL tablespace_name FOR a30 SQL> COL file_name FOR a50 SQL> SELECT tablespace_name, file_name, bytes/1024/1024 "size(mb)", autoextensible, maxbytes/1024/1024 "max(mb)" FROM dba_temp_files; TABLESPACE_NAME FILE_NAME size(mb) AUTOEXTENSIBLE max(mb) --------------- ----------------------------- -------- ------------- ------- TEMP /data2/tb4/tbdata/temp001.tdf 400 YES 1024 4 Tibero 업그레이드가이드
사용자 Tablespace 확인 Default Tablespace 를제외한 Tablespace 들에대해 TABLESPACE_NAME 과각 Tablespace 에서사용 중인데이터파일의 FILE_NAME, size, maxsize, AUTOEXTENSIBLE 을확인한다. SQL> SET linesize 150 SQL> COL tablespace_name FOR a30 SQL> COL file_name FOR a50 SQL> SELECT tablespace_name, file_name, bytes/1024/1024 "size(mb)", maxbytes/1024/1024 "maxsize(mb)", autoextensible FROM dba_data_files WHERE tablespace_name not in('system', 'UNDO', 'USR'); TABLESPACE_NAME FILE_NAME size(mb) maxsize(mb) AUTOEXTENSIBLE --------------- ---------------------------- -------- ----------- -------------- DBTECH_TBS /tb4/tbdata/dbtech_tbs01.dtf 50 5120 YES DBTECH_IDX /tb4/tbdata/dbtech_idx01.dtf 50 1024 YES 로그모드확인 로그모드를확인하여 ARCHIVELOG일경우 LOG_ARVHIVE_DEST, LOG_ARVHIVE_FORMAT, LOG_ARVHIVE_OVERWRITE, LOG_ARVHIVE_RETRY_TIME을확인한다. 로그모드외에기본값과 다른것이있으면 Target DB의 tip 파일에설정한다. SQL> SELECT log_mode FROM v$database; LOG_MODE ------------ ARCHIVELOG SQL> SHOW PARAM ARCHIVE NAME TYPE VALUE ---------------------------- -------- ------------------------------------------ LOG_ARCHIVE_DEST DIRNAME /data2/tb4/tibero4/database/tb4/archive/ LOG_ARCHIVE_FORMAT STRING log-t%t-r%r-s%s.arc LOG_ARCHIVE_OVERWRITE Y_N NO LOG_ARCHIVE_RETRY_TIME UINT32 60 컨트롤파일확인 경로및파일명을알맞게수정한다. Target DB 의데이터베이스를생성할때수정한경로및파일명을 참고한다. 제 1 장 Tibero 4 SP1 to Tibero 5 5
SQL> alter database backup controlfile to trace as '/data2/tb4/tb4sp1_export/controlfile_tb4sp1.sql'; Database altered. SQL>!cat /data2/tb4/tb4sp1_export/controlfile_tb4sp1.sql CREATE CONTROLFILE REUSE DATABASE "tb4" LOGFILE GROUP 0 ( '/data2/tb4/tbdata/log001.log', '/data2/tb4/tbdata/log002.log' ) SIZE 50M, GROUP 1 ( '/data2/tb4/tbdata/log003.log', '/data2/tb4/tbdata/log004.log' ) SIZE 50M, GROUP 2 ( '/data2/tb4/tbdata/log005.log', '/data2/tb4/tbdata/log006.log' ) SIZE 50M NORESETLOGS DATAFILE '/data2/tb4/tbdata/system001.tdf', '/data2/tb4/tbdata/undo001.tdf', '/data2/tb4/tbdata/usr001.tdf', '/data2/tb4/tbdata/dbtech_tbs01.dtf', '/data2/tb4/tbdata/dbtech_idx01.dtf' ARCHIVELOG MAXLOGFILES 255 MAXLOGMEMBERS 8 MAXDATAFILES 100 CHARACTER SET MSWIN949 NATIONAL CHARACTER SET UTF16 ; --ALTER DATABASE MOUNT ---- Recovery is required in MOUNT mode. --ALTER DATABASE RECOVER AUTOMATIC; --ALTER DATABASE OPEN ; ---- Adding Tempfiles is required in OPEN mode. -- ALTER TABLESPACE TEMP ADD TEMPFILE '/data2/tb4/tbdata/temp001.tdf' -- SIZE 400M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 1G; JOB 확인 JOB 은이관되지않으므로 Target DB 에수동으로생성이필요하다. 6 Tibero 업그레이드가이드
SQL> SET LINESIZE 150 SQL> COL what FOR a30 SQL> COL interval FOR a30 SQL> COL username FOR a20 SQL> alter session set NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'; SQL> SELECT job as job_no, b.username, what, to_char(next_date, 'yyyy/mm/dd HH24:MI:SS') as next_date, interval, broken FROM dba_jobs a, dba_users b WHERE a.schema_user=b.user_id; JOB_NO USERNAME WHAT NEXT_DATE INTERVAL BROKEN ------ -------- --------------------------- ------------------- --------- ------ 1 DBTECH dbms_output.put_line('ok'); 2013/06/30 00:00:00 SYSDATE+1 N DB Link 확인 (Tibero to Tibero, Tibero to Oracle 등 ) DB Link 는이관되지않으므로 Target DB 에수동으로생성이필요하다. SQL> SET LINESIZE 150 SQL> COL owner FOR a15 SQL> COL db_link FOR a20 SQL> COL username FOR a20 SQL> COL host FOR a10 SQL> COL created FOR a10 SQL> SELECT owner, db_link, username, host, created FROM dba_db_links; OWNER DB_LINK USERNAME HOST CREATED --------------- -------------------- -------------------- ---------- ---------- DBTECH TBLINK DBTECH2 tb4 2013/06/12 참고 Tibero 4 SP1 r72163 이후에는자동으로생성되므로최신리비전으로패치한후업그레이드한다. External Procedure 사용여부확인외부참조라이브러리를확인하여결과가존재할경우후처리파일인 so 및 class 파일을 Target DB의동일경로에복사하거나 Target DB에서재컴파일한다. 라이브러리는이관되지않으므로 Target DB에수동으로생성이필요하다. 다음은외부참조라이브러리의확인예이다. 제 1 장 Tibero 4 SP1 to Tibero 5 7
C External Procedure SQL> SET LINESIZE 120 SQL> COL owner FOR a10 SQL> COL library_name FOR a30 SQL> COL file_spec FOR a50 SQL> COL status FOR a10 SELECT owner, library_name, file_spec, status FROM dba_libraries; JAVA External Procedure SET LINESIZE 120 COL owner FOR a10 COL name FOR a30 COL source FOR a50 SELECT owner, name, source FROM dba_java_classes; 다음은 JAVA 의 Class 위치확인예이다. SQL> SHOW PARAM JAVA_CLASS_PATH; NAME TYPE VALUE ---------------- -------- -------------------------- JAVA_CLASS_PATH DIRNAME /data2/tb4/tbdata/java/ 참고 JAVA External Procedure 에서외부라이브러리를참조할때 $TB_HOME/bin/tbjavac 와 $TB_HOME/client/bin/tbjavaepa 설정을확인한다. Wrapped PSM(PL/SQL) 확인 Wrapped PL/SQL은 DB에서내용을조회할수없으므로수동으로생성하기위한생성문을얻을수없다. 그래서이관을위해서는원본생성문이필요하다. Tibero 4 SP1 r69770, Tibero 5 r69770 이전에해당하는경우 Wrapped PSM(PL/SQL) 은이관되지않으므로 Target DB에수동으로생성이필요하다. 다음은 Wrapped PSM(PL/SQL) 확인예이다. SQL> SET LINESIZE 120 SQL> COL owner FOR a30 SQL> COL object_name FOR a40 SQL> SELECT owner, object_name, functionable, wrapped FROM dba_procedures 8 Tibero 업그레이드가이드
WHERE wrapped = 'YES'; OWNER OBJECT_NAME FUNCTIONABLE WRAPPED ------------------------- ------------------------- ------------ ------- DBTECH WRAP_TEST NO YES 디렉터리확인 External table 에서사용하는디렉터리가존재하는지확인한후디렉터리가존재한다면해당파일을 Target DB 시스템경로에맞게복사및재생성한다. SQL> SET LINESIZE 120 SQL> COL name FOR a20 SQL> COL path FOR a60 SQL> SELECT * FROM dba_directories; NAME PATH -------------------- ---------------------- SAM /data2/tb4/dir_sam Object Count 확인쿼리수행후나온조회결과를저장하고 Object Count를확인한다. 해당결과는 1.5. 검증 에서이관된 Object Count를확인하는기준으로사용된다. SQL> SET LINESIZE 150 SQL> SET PAGES 500 SQL> COL owner FOR a20 SQL> SELECT owner, object_type, status, count(*) FROM dba_objects WHERE owner not in ('SYS', 'SYSCAT', 'SYSGIS', 'OUTLN') GROUP BY owner, object_type, status ORDER BY owner, object_type, status; OWNER OBJECT_TYPE STATUS COUNT(*) -------------------- -------------------- ------- ---------- DBTECH DATABASE LINK VALID 1 DBTECH FUNCTION VALID 3 DBTECH INDEX VALID 9 DBTECH JAVA VALID 1 DBTECH LIBRARY VALID 1 DBTECH PROCEDURE VALID 3 DBTECH SEQUENCE VALID 3 DBTECH SYNONYM VALID 6 DBTECH TABLE VALID 10 DBTECH TRIGGER VALID 2 제 1 장 Tibero 4 SP1 to Tibero 5 9
DBTECH VIEW VALID 1 DBTECH2 FUNCTION VALID 1 DBTECH2 INDEX VALID 7 DBTECH2 LOB VALID 2 DBTECH2 PACKAGE VALID 2 DBTECH2 PACKAGE BODY VALID 2 DBTECH2 PROCEDURE VALID 4 DBTECH2 SEQUENCE VALID 1 DBTECH2 TABLE VALID 7 DBTECH2 TRIGGER VALID 1 DBTECH2 VIEW VALID 1 PUBLIC SYNONYM VALID 565 TIBERO TABLE VALID 1 Constraint 확인 쿼리수행후나온조회결과를저장하고 Constraint 를확인한다. 해당결과는 1.5. 검증 에서이관된 Constraint 를확인하는기준으로사용된다 SQL> SET LINESIZE 150 SQL> COL owner FOR a30 SQL> SELECT owner,constraint_type,count(constraint_name) as con_cnt FROM dba_constraints WHERE owner not in ('SYS', 'SYSCAT', 'SYSGIS', 'OUTLN') GROUP BY owner, constraint_type ORDER BY owner,constraint_type; OWNER CONSTRAINT_TYPE CON_CNT ------------------------------ --------------- ---------- DBTECH C 21 DBTECH O 0 DBTECH P 7 DBTECH R 3 DBTECH U 1 DBTECH2 C 7 DBTECH2 P 7 DBTECH2 R 1 컬럼암호화 (DBMS_OBFUSCATION_TOOLKIT) 사용여부확인 SQL> SET LINESIZE 150 SQL> COL OWNER FOR a10 SQL> COL NAME FOR a20 SQL> COL TYPE FOR a20 10 Tibero 업그레이드가이드
SQL> SELECT OWNER, NAME, TYPE FROM ALL_SOURCE WHERE LONG_TO_CHAR(TEXT) LIKE '%DBMS_OBFUSCATION_TOOLKIT%' AND OWNER NOT IN ('SYS', 'SYSCAT', 'SYSGIS', 'OUTLN'); OWNER NAME TYPE ------ ---------------- ---------- DBTECH FN_DECRYPT_FN FUNCTION DBTECH FN_ENCRYPT_FN FUNCTION 다음은 Target DB 에서재암호화하기위한복호화 Table 을생성하는예이다. SQL> SELECT A, B, C FROM TBL_ENCRYPT; A B C ---------- ------------------------------ ------------------------------ 1 837A53053429CD1E 837A53053429CD1E 1 row selected. SQL> SELECT A, FN_DECRYPT_FN(B) AS B, FN_DECRYPT_FN(C) AS C FROM TBL_ENCRYPT; A B C ---------- ------------------------------ ------------------------------ 1 testing testing SQL> CREATE TABLE TBL_ENCRYPT_BACKUP AS SELECT A, FN_DECRYPT_FN(B) AS B, FN_DECRYPT_FN(C) AS C FROM TBL_ENCRYPT; Table 'TBL_ENCRYPT_BACKUP' created. SQL> SELECT A, B, C FROM TBL_ENCRYPT_BACKUP; A B C ---------- ------------------------------ ------------------------------ 1 testing testing 1 row selected. 참고 DBMS_OBFUSCATION_TOOLKIT 패키지는 Tibero 4 SP1 이전버전과 5 버전의구현이다르게되 어있기때문에복호화후 Tibero 5 이상의버전에서다시암호화하는방식으로이관을한다. 제 1 장 Tibero 4 SP1 to Tibero 5 11
1.3.2. Export 수행 1. DB에연결된모든애플리케이션종료 Export 하는동안데이터변경이일어나지않게하려면 Source DB에연결된모든애플리케이션을종료한다. 다음은접속된세션확인예이다. SQL> SELECT count(*) FROM v$session; COUNT(*) ---------- 2 2. JOB 수행중지 Export 하는동안 JOB 이수행되면데이터변경이일어날수있으므로 JOB 수행을중지한다. 다음은 JOB 번호가 100 번인 JOB 을중지하는예이다. BEGIN DBMS_JOB.BROKEN(100, true); END; / 3. tbexport tbexport 의 Database(FULL) 모드로수행한다. 다음은 tbexport 의사용방법이다. tbexport username={sys dba 계정 } password=<password> port=<port_no> sid=<sid> file=<file name> log=<log-file name> full=y script=y 항목 username password port sid file log 설명 Export 할 DB 계정으로 sys 계정또는 dba 계정중에서하나를선택한다. Export 할 DB 계정의비밀번호이다. Export 할 DB의포트번호이다. Export 할 DB의이름이다. 생성될파일이름이다. 생성될로그파일의이름이다. 다음은 Source DB 서버에서 Tibero 4 SP1 버전의 tbexport 사용예이다. 12 Tibero 업그레이드가이드
tbexport username=sys password=pwd port=8629 sid=tb4 \ file=tibero4_all.dat log=tibero4_exp.log full=y script=y 1.4. Target DB(Tibero 5) 작업 본절에서는 Target DB인 Tibero 5의작업절차를설명한다. 작업절차는다음과같은순서로진행한다. 1. 설치 2. Import 수행 3. 후처리 각과정에대한상세한설명은해당절의내용을참고한다. 1.4.1. 설치 Tibero 5를설치하는순서는다음과같다. 1. 기본절차기본절차에대한자세한내용은 "Tibero 설치가이드 " 를참고한다. 2. 파일설정 Tibero Initial Parameter(TIP 파일 ) TIP는 $TB_HOME/config 안에 $TB_SID.tip 파일명으로되어있다. _ 로시작하는히든파라미터를사용하는것이있다면 Tibero 5에서의적용확인이필요하다. 파라미터 DBWR_CNT WTHR_PROC_CNT, _WTHR_PER_PROC DB_CACHE_SIZE LOG_BUFFER 설명 Tibero 5에서는해당파라미터를자동으로설정하므로반드시사용해야야하는경우가아닐경우삭제한다. Tibero 5의 MAX_SESSION_COUNT로대체한다. 해당파라미터값은 {(WTHR_PROC_CNT) * (_WTHR_PER_PROC)} 값에가장가까운 10의배수로설정한다. Tibero 5의 TOTAL_SHM_SIZE에따라자동으로설정된다. Tibero 5의기본값은 10M이다. 참고 Tibero 5 에서는 DBWR_CNT 의값을명시적으로지정하지않으면 1 과서버의 CPU core 수를 4 로나 눈값중에서큰값으로설정한다. ( 예 : MAX(1, get_ncpu()/4)) 제 1 장 Tibero 4 SP1 to Tibero 5 13
tbdsn.tbr Tibero 4 SP1 과기본문법은같고기존에사용하던 Alias 등을추가한다. tb5=( (INSTANCE=(HOST=192.168.1.129) (PORT=8629) (DB_NAME=tb5) ) hidden=( (INSTANCE=(HOST=192.168.1.129) (PORT=8630) (DB_NAME=tb5) ) 기타파일 Source DB에서아래와같은설정파일을사용한다면 Tibero 5의해당설정파일에도적용이필요하다. ESQL $TB_HOME/client/config/tbpc.cfg $TB_HOME/client/config/tbpcb.cfg C/JAVA External Procedure $TB_HOME/client/tbepa/tbepa.cfg $TB_HOME/client/tbepa/java/config/tbepa.cfg (Tibero 5의경우 : $TB_HOME/client/epa/java/config/epa.cfg) DB Link 관련 Gateway $TBGW_HOME/oracle/config/tbgw.cfg $tbjavagw/tbgw.cfg(tibero 5의경우 : $tbjavagw/jgw.cfg) External Procedure(so 또는 class 파일복사 ) Source DB와 Targer DB의 OS, BIT가동일하면복사를하고다르면원본소스를통해재컴파일을수행한다. 디렉터리관련파일 "1.2.2. 체크방법 " 의 " 디렉터리확인 " 의조회결과파일을복사한다. 3. 데이터베이스생성 1.3.1. 체크리스트및체크방법 의내용을참고하여 Tibero 4 SP1 설정에맞게수정한후 DB 를생성한 다. 단, Archivelog 모드일경우후처리를적용한다. 14 Tibero 업그레이드가이드
create database user sys identified by tibero maxdatafiles 1024 character set MSWIN949 national character set UTF16 logfile group 0 ('redo001.redo') size 50M, group 1 ('redo011.redo') size 50M, group 2 ('redo021.redo') size 50M maxlogfiles 100 maxlogmembers 8 noarchivelog datafile 'system001.dtf' size 128M autoextend on next 16M maxsize 3072M default tablespace USR datafile 'usr001.dtf' size 128M autoextend on next 16M maxsize 3072M default temporary tablespace TEMP tempfile 'temp001.dtf' size 128M autoextend on next 16M maxsize 3072M extent management local AUTOALLOCATE undo tablespace UNDO datafile 'undo001.dtf' size 128M autoextend on next 16M maxsize 3072M extent management local AUTOALLOCATE; 4. APM Tablespace 생성 TIbero 5 는 APM 정보를별도의 _APM_TS Tablespace 에저장한다. 따라서 DB 생성후에별도로 _APM_TS 를생성하고경로및사이즈는사이트에환경에맞게설정한다. CREATE TABLESPACE _APM_TS DATAFILE '/home/tibero5/tbdata/apm_ts.dtf' SIZE 100M AUTOEXTEND ON NEXT 16M MAXSIZE 3072M; 5. System.sh 수행 $TB_HOME/scripts/system.sh 를수행한다. 1.4.2. Import 수행 Import 를수행하는순서는다음과같다. 1. 사용자 Tablespace 생성 제 1 장 Tibero 4 SP1 to Tibero 5 15
tbexport 에서생성된 tibero4_exp.log 파일을열어 CREATE TABLESPACE 구문을참조해데이터파일 경로및 size 를조정한다. 단, CREATE DATABASE 에서생성된 SYSTEM, UNDO, TEMP, USR 부분은 생성하지않는다. 주의 Tablespace를미리생성하지않은상태에서 Import를수행하면 Source DB 정보그대로데이터파일을생성하게되고, 이경우의도하지않은경로에데이터파일을생성하거나데이터파일의생성실패및불필요한스토리지사용의문제를일으킬수있다. 2. tbimport Export 한데이터파일을미리복사해서가져온후 tbimport 의 Database(FULL) 모드로수행한다. 다음은 Target DB 서버에서 tbimport 의사용방법이다. tbimport username={sys dba 계정 } password=<password> port=<port_no> sid=<sid> file=<file name> log=<log-file name> full=y script=y ignore=y 항목 username password port sid file log 설명 Import 한 DB 계정으로 sys 계정또는 dba 계정중에서하나를선택한다. Import 한 DB 계정의비밀번호이다. Import 한 DB의포트번호이다. Import 한 DB의이름이다. Tibero 4 SP1에서 Import 한데이터파일이다. 생성될로그파일의이름이다. 다음은 Source DB 서버에서 Tibero 4 SP1 버전의 tbimport 사용예이다. tbimport username=sys password=pwd port=8629 sid=tb5 \ file=tibero4_all.dat log=tibero5_imp.log full=y ignore=y 1.4.3. 후처리 후처리하는순서는다음과같다. 1. 컬럼암호화 (DBMS_OBFUSCATION_TOOLKIT) 사용암호화된컬럼들이있다면 DBMS_OBFUSCATION_TOOLKIT 패키지를사용하여앞서 Tibero 4 SP1 Import 진행전에복호화된 BACKUP Table을다시암호화처리한다. 다음은미리복호화한 Table을이용해암호화된 Table을재생성하는예이다. 16 Tibero 업그레이드가이드
SQL> DROP TABLE TBL_ENCRYPT; Table 'TBL_ENCRYPT' dropped. SQL> CREATE TABLE TBL_ENCRYPT AS SELECT A, FN_ENCRYPT_FN(B) AS B, FN_ENCRYPT_FN(C) AS C FROM TBL_ENCRYPT_BACKUP; Table 'TBL_ENCRYPT' created. SQL> SELECT A, B, C FROM TBL_ENCRYPT; A B C ---------- ------------------------------ ------------------------------ 1 837A53053429CD1E 837A53053429CD1E 1 row selected. 2. 미지원목록처리 미지원목록에대한생성구문을 Source DB 스크립트형태로실행한다. JOB DECLARE job_no number; BEGIN DBMS_JOB.SUBMIT(job_no,'dbms_output.put_line(''ok'');',SYSDATE,'SYSDATE+1'); END; / DB LINK CREATE DATABASE LINK olink CONNECT TO scott IDENTIFIED BY 'tiger' USING 'oragw'; External Procedure - Library CREATE OR REPLACE LIBRARY extproc IS '/home/tibero/cepa/libextproc.so'; External Procedure JAVA SOURCE CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "JavaExtproc" AS public class SimpleMath { public static int findmax(int x, int y) { if (x >= y) return x; else return y; } } / 제 1 장 Tibero 4 SP1 to Tibero 5 17
Wrapped PL/SQL CREATE OR REPLACE PROCEDURE wrap_test WRAPPING IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World'); END; / 디렉터리경로변경 CREATE OR REPLACE DIRECTORY dir_ext AS '/home/tibero/t5/work/external/external' / 3. Archive 모드적용 기존 Tibero 4 SP1 이 Archive 모드였거나 Archive 운영이필요할경우적용한다. DB 종료 tbdown immediate Mount 모드기동 tbboot -t mount 모드변경 tbsql sys/tibero SQL> alter database archivelog; DB 종료및기동 tbdown immediate tbboot 확인 tbsql sys/tibero SQL> SHOW PARAM LOG_ARCHIVE_DEST NAME TYPE VALUE ----------------------- -------- -------------------------------------------- LOG_ARCHIVE_DEST DIRNAME /home/tibero/t5/tibero5/database/t5/archive/ SQL> alter system switch logfile; System altered. 18 Tibero 업그레이드가이드
SQL>!ls -la /home/tibero/t5/tibero5/database/t5/archive/ total 23572 -rw-------. 1 tibero dba 24126976 Apr 4 22:40 log-t0-r0-s1.arc SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG 1.5. 검증 "1.2.2. 체크방법 " 의 "Object Count 확인 " 및 "Constraint 확인 " 을 Target DB의 Object 및 Constraint 개수와비교하여개수가맞지않다면아래와같이 View를조사한다. 만약미지원되는사항이외의것이이관되지않았다면확인이필요하다. Table View Synonym Sequence Package Package Body Function Procedure Index Constraint Grant Trigger - DBA_TABLES - DBA_VIEWS - DBA_SYNONYMS - DBA_SEQUENCES - DBA_SOURCE(TYPE = 'PACKAGE') - DBA_SOURCE(TYPE = 'PACKAGE BODY') - DBA_SOURCE(TYPE = 'FUNCTION') - DBA_SOURCE(TYPE = 'PROCEDURE') - DBA_INDEXES - DBA_CONSTRAINTS - DBA_TAB_PRIVS - DBA_TRIGGERS 참고 Target DB 의 Object 및 Constraint 를조회할경우 "1.2.2. 체크방법 " 의 "Object Count 확인 " 과 "Con straint 확인 " 를참고한다. 제 1 장 Tibero 4 SP1 to Tibero 5 19
1.6. I/F Driver 변경 1.6.1. JDBC Tibero 4 SP1 JDBC 3.0 SPEC을준수한다. (JDK 1.4 이상 ) JDBC 파일 : $TB_HOME/client/lib/jar/tibero4-jdbc.jar Tibero 5 JDBC 4.0 SPEC 을준수한다. (JDK 1.6 이상 ) JDBC 파일 : $TB_HOME/client/lib/jar/tibero5-jdbc.jar 참고 JDK 버전이 1.6 미만일경우 1.6 이상으로업그레이드를하고 JDBC Driver 를교체한다. 만약, JDK 를업그레이드를할수없다면 tibero5-jdbc-14.jar 파일을사용한다. Tibero URL Setting Tibero 5의경우 DB NAME 체크가강화되었다. Single일경우 DB NAME이정확히일치하는지확인하고, TAC 일경우 DATABASE_NAME에 DB NAME 설정이필요하다. Tibero 4 SP1 Single : jdbc:tibero:thin:@192.168.11.49:8629:tibero TAC : "jdbc:tibero:thin:@(description= (failover=on)(load_balance=on) (address_list=(address=(host=192.168.11.49)(port=8629)) (address=(host=192.168.11.50)(port=8629)) )) Tibero 5 Single : jdbc:tibero:thin:@192.168.11.49:8629:tibero TAC : "jdbc:tibero:thin:@(description= (failover=on)(load_balance=on) (address_list=(address=(host=192.168.11.49)(port=8629)) (address=(host=192.168.11.50)(port=8629)) )(DATABASE_NAME=tibero5)) 20 Tibero 업그레이드가이드
1.6.2. ODBC 및 OLE DB Tibero 5 ODBC 및 OLE DB를설치하여기존의 Driver를변경한다. Oracle to Tibero DB Link의경우 ODBC Driver를사용하므로교체가필요하다. Connection String(ODBC) DSN 방식은동일하며 WIndows 계열의 IP/PORT 접속방식이면아래와같이변경이필요하다. Tibero 4 SP1 DRIVER={Tibero 4 ODBC Driver};SERVER=127.0.0.1;PORT=8629;UID=tibero;PWD=tmax; Tibero 5 DRIVER={Tibero 5 ODBC Driver};SERVER=127.0.0.1;PORT=8629; DB=tb5;UID=tibero;PWD=tmax; 참고 1. Tibero 5의경우 DB NAME 체크가강화되므로고객사에해당하는 DB NAME을추가한다. 2. UNIX 계열 (Linux 포함 ) 에서는 SQLDriverConnect를사용하여 IP/PORT를명시해도환경변수 TB_SID를참고하여 DSN 방식으로동작한다. Connection String(OLE DB) DSN 방식은동일하며 WIndows 계열의 IP/PORT 접속방식이면아래와같이변경이필요하다. Tibero 4 SP1 Provider=tbprov.Tbprov;Data Source='127.0.0.1,8629';User ID=tibero;Password=tmax; Tibero 5 r62421 이후 Provider=tbprov.Tbprov;Data Source='127.0.0.1,8629,tb5'; User ID=tibero;Password=tmax; 참고 Tibero 5 의경우 DB NAME 체크가강화되므로고객사에해당하는 DB NAME 을추가한다. 제 1 장 Tibero 4 SP1 to Tibero 5 21
1.6.3. 기타 (DB Link, EXTERNAL 등 ) DB Link Gateway 를사용중이라면 Tibero 5 에서제공하는 Gateway 로변경후기동한다. $TB_HOME/client/bin/ External Procedure JAVA External Procedure 의 Agent 를사용중이라면 Tibero 5 에서제공하는 Agent 로변경후기동한다. 외부라이브러리 (JAR) 참조 Tibero 4의해당파일을열어외부라이브러리참조에필요한셋팅을 Tibero 5에적용한후관련라이브러리를가져온다. Tibero 4 SP1 $TB_HOME/bin/tbjavac $TB_HOME/client/bin/tbjavaepa Tibero 5 $TB_HOME/bin/psmjavac $TB_HOME/client/bin/tbjavaepa 참고 Tibero 5 는 tbjavac 이 psmjavac 로변경된다. 1.7. 주의사항 to_lob() 함수이용 Tibero 4 SP1 r65351 이후로 select 문에 to_lob() 이사용된경우 long 을사용할수없도록바뀌었으므로해 당 long 타입에 to_lob 함수를사용한경우 lob 타입또는 LONG_TO_CHAR 함수로변경이필요하다. 22 Tibero 업그레이드가이드