Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DBDBDEEP

tbImport 본문

Tibero

tbImport

Kihwane 2022. 10. 25. 17:06

tbImport

 

개요

 

이 유틸리티를 통해 외부 파일에 저장된 스키마 객체를 Tibero 데이터베이스에 다시 저장하므로, tbExport 유틸리티와 함께 데이터베이스의 백업과 다른 머신 간의 데이터베이스 전송 등을 할 때 유용하다. 

 

tbImport의 수행은 tbExport로 추출한 파일을 다른 (혹은 동일한) 데이테베이스에 저장하는 기능을 수행한다.

tbImport 의 수행은 데이터가 변경되거나 오브젝트가 신규 구성되기 때문에 tbexport 보다 신중히 작업 시간대를 선택한다.

 


 

 

tbImport 특징 및 사용 시 고려사항

 

1. tbExport 시에는 추출 대상 테이블의 크기가 클 경우 인덱스, 제약조건, 통계정보는 제외하고 추출할 것을 권고하였다.

   tbImport 작업또한 해당조건을 제외하고 저장할 수 있는 옵션을 제공해서 import 후 수동 생성하는 것이 성능면에서 유리.

    *!!그러나 값이 작으면 한번에 작업하는 것이 편리함 !!*

 

2. 이관 대상 데이터베이스에 동일한 테이블이 이미 존재하게 되면 해당 테이블의 제약조건에 따라 이관된다. 

     이로인해 수행속도 지연 / 몇몇데이터가 제약조건에 의해 누락될 수 있음.

    따라서 'tbExport 시 추출한 오브젝트들이 모두 생성 Script를 포함' 하므로  동일한 오브젝트 모두 DROP      후 이관하는 것이 성능/검증면에서 유리

 

만약 존재하는 동일 오브젝트 들의 DROP이 불가능 하다면?

  2.1 - 제약조건,인덱스는 이관 전 DROP 후 이관 이후 생성 혹은 활성화 한다.

  2.2 - 리두로그 발생을 최소화하기 위해 이관 전 nologging 처리하고 이관 후 logging 처리한다.

 

 

3. tbImport 이후 기존에 백업해둔 object 정보와 이관 대상 데이터베이스의 dba_objects 정보를 비교하여 이관 정상 여부를 검증해야 한다

(대부분의 invaild 오브젝트 문제는 연관된 object가 신규생성(혹은 재생성)되는 과정에서 invaild가 된 것이므로 단순히 compile해주는 것만으로 해결이 가능하다).

 

 

- invaild object의 compile 쿼리 생성

 -- (package body는 나머지 type들과 compile 쿼리가 상이하여 구분하여 생성)

SELECT 'ALTER' ||'PACKAGE'||' '||OWNER||'.'||OBJECT_NAME||' COMPILE BODY;'  AS COMPDDL
  FROM DBA_OBJECTS
 WHERE OWNER = 'SYS'     
   AND STATUS = 'VALID'
   AND OBJECT_TYPE = 'PACKAGE BODY'
 ORDER BY OBJECT_TYPE, OBJECT_NAME;
 

              * OWNER = SYS 인 이유는 TEST는 값이 없다 *

              * STATUS = VALID 인 이유는 현재 값은 모두 VALID이기 때문이다. * 

 

COMPDDL
--------------------------------------------------------------------------------
ALTERPACKAGE SYS.DB2_STANDARD COMPILE BODY;
ALTERPACKAGE SYS.DBMS_APM COMPILE BODY;
ALTERPACKAGE SYS.DBMS_AQ COMPILE BODY;
ALTERPACKAGE SYS.DBMS_AQADM COMPILE BODY;
ALTERPACKAGE SYS.DBMS_AQ_UTL COMPILE BODY;
ALTERPACKAGE SYS.DBMS_ASSERT COMPILE BODY;
ALTERPACKAGE SYS.DBMS_AUDIT_EVENT COMPILE BODY;
ALTERPACKAGE SYS.DBMS_DB2_TRANSLATOR COMPILE BODY;
ALTERPACKAGE SYS.DBMS_ERRLOG COMPILE BODY;
ALTERPACKAGE SYS.DBMS_JOB_WITH_NAME COMPILE BODY;
ALTERPACKAGE SYS.DBMS_METADATA COMPILE BODY;
ALTERPACKAGE SYS.DBMS_MSSQL_TRANSLATOR COMPILE BODY;
ALTERPACKAGE SYS.DBMS_MVIEW COMPILE BODY;
ALTERPACKAGE SYS.DBMS_MVIEW_REFRESH_UTIL COMPILE BODY;
ALTERPACKAGE SYS.DBMS_MVIEW_UTIL COMPILE BODY;
ALTERPACKAGE SYS.DBMS_REDEFINITION_STATS COMPILE BODY;
ALTERPACKAGE SYS.DBMS_RESOURCE_MANAGER COMPILE BODY;
ALTERPACKAGE SYS.DBMS_RESOURCE_MANAGER_PRIVS COMPILE BODY;
ALTERPACKAGE SYS.DBMS_SCHEDULER COMPILE BODY;
ALTERPACKAGE SYS.DBMS_SCHEDULER_CHAIN_INTERNAL COMPILE BODY;
ALTERPACKAGE SYS.DBMS_SERVER_ALERT COMPILE BODY;
ALTERPACKAGE SYS.DBMS_SESSION COMPILE BODY;

이하생략

 

 

이렇게 Invalid object compile 쿼리를 얻을 수 있음.

 

4. 통계 정보를 제외하고 tbImport했다면 수동 생성 해야 한다.

 

-- tbImport 대상 테이블들의 통계 정보 수집 쿼리 생성

SELECT 'EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'''||OWNER||''',
        TABNAME=>'''||TABLE_NAME||''',ESTIMATE_PERCENT=>100,
        METHOD_OPT=>''FOR ALL COLUMNS SIZE 200'');'
  FROM DBA_TABLES
 WHERE OWNER ='TEST'
 ORDER BY OWNER,TABLE_NAME;

 

 

'EXECDBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'''||OWNER||''',TABNAME=>'''||TABLE_
--------------------------------------------------------------------------------
EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'TEST',
        TABNAME=>'T1',ESTIMATE_PERCENT=>100,
        METHOD_OPT=>'FOR ALL COLUMNS SIZE 200');

EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'TEST',
        TABNAME=>'T2',ESTIMATE_PERCENT=>100,
        METHOD_OPT=>'FOR ALL COLUMNS SIZE 200');

EXEC DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'TEST',
        TABNAME=>'T3',ESTIMATE_PERCENT=>100,
        METHOD_OPT=>'FOR ALL COLUMNS SIZE 200');


3 rows selected.

 

 

모드

Import 모드는 3가지가 존재하게 된다. DBA만 이 사용할 수 있고, 권한을 얻을 수 없는 경우 select any dictionary 권한을 부여하여 사용하는 것을 권장한다.

 

tbImport Option

tbimport 6.0  xxxxxx Copyright 2015 TmaxData Co., Ltd. All Rights Reserved.
Patch files (none)

Usage:  tbimport [PARAMETER1=VALUE] [PARAMETER2=VALUE] ...
Parameters:
    BIND_BUF_SIZE     Specify the buffer size of DPL stream, default: 1M(1048576)
    CFGFILE           Config file name
    COMMIT            Commit after the insertion, default: N
    CONSTRAINT        Import Constraint: Y/N, default: Y
    DBLINK            Import DB Link: Y/N, default: Y
    DPL               Use Direct Path Load: Y/N, default: N
    ENCRYPTION_PASSWORD    encryption password to decrypt dump file
    EXP_SERVER_VER    Specify the exported server version, default: 8
    FILE              Import dump file name, default: default.dat
    FROMUSER          FromUser toUser Mode: user name list(must be used with TOUSER parameter) 
    FULL              Full Mode: Y/N, default: N
    GRANT             Import Grant: Y/N, default: Y
    GEOM_ASBYTES      Import the data to the geometry columns as bytes, default: N
    IGNORE            Ignore create error due to object existence: Y/N, default: N
    INDEX             Import Index: Y/N, default: Y
    IO_BUF_SIZE       Specify the buffer size of file I/O, default: 16M(16777216)
    IP                IP address, default: localhost
    LOG               Import script log file name
    LOGDIR            Import log directory
    NATIONAL_CHARSET  Specify the exported national character set, default is the exported character set 
    NO_PACK_DIR       Import unpacked dump files from specified directory. If this option is specified, FILE parameter will be ignored.
    PASSWORD          User password
    ROLE              Import Role: Y/N, default: Y
    PORT              PORT number, default: 8629
    PSM               Import PSM: Y/N, default: Y
    P_DPL             Use Parallel DPL: Y/N, default: N
    ROWS              Import Table Rows: Y/N, default: Y
    SAVE_CREDENTIAL   Save your username and password to specified file
    SCRIPT            LOG THE DDL SCRIPT: Y/N, default: N
    SEQUENCE          Import Sequence: Y/N, default: Y
    SID               Database name
    STATISTICS       Import Statistics: Y/N, default: N
    SYNONYM           Import Synonym: Y/N, default: Y
    TABLE             Table Mode: table name list
    TEMP_DIR          Directory for the temporary raw dump files.
    THREAD_CNT        Thread Count, default: 4
    TOUSER            FromUser toUser Mode: user name list(must be used with FROMUSER parameter) 
    TRIGGER           Import Trigger: Y/N, default: Y
    USER              User Mode: user name list 
    USERNAME          Database user name

 


Import 수행하기

1. 유저모드로 추출했던 파일 (exptest.dat) 1개 테이블만 tbImport 하기.

 

SQL> drop table test.t1;

Table 'TEST.T1' dropped.

 

*******************************************************************

tibero error : 15163

tibero error : 24035 

   ㄴ> cent_prs_ts

 

 

tbImport 중 났던 error.


DROP TABLESPACE cent_prs_ts INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE prscu_ts INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE PRS_TIBERO_ts INCLUDING CONTENTS AND DATAFILES;

이렇게  테이블스페이스를 DROP 해주었더니 정상으로 되었다.

*******************************************************************

 

[tibero@tibero java]$ tbimport username=sys password=tibero sid=tibero port=8629 file=/home/tibero/tbexport/exptest.dat log=/home/tibero/tbexport/imptest.log table=test.t1

 

 

tbimport 6.0

Copyright 2015 TmaxData Co., Ltd. All Rights Reserved.

Unpacking the file...
Import character set: UTF-8
the TABLE: test.t1: Tue Oct 25 16:59:06 KST 2022
Import national character set: UTF-16
  importing schema: "TEST"
    importing table "T1"
      [0] TEST.T1                                             1/1 rows imported.
    importing index "_TEST_CON44600167"
  importing constraint "_TEST_CON44600167"
Import completed successfully: Tue Oct 25 16:59:06 KST 2022

 

 

SQL> select * from test.t1; 


        C1 C2        
---------- ----------
         1 A

 

2. REMAP_TABLESPACE로 추출했던 파일의 유저를 변경하여 tbimport 하기

 

 

출처 : http://www.gurubee.net/lecture/4168

 

tbImport

가. 개요 tbImport 유틸리티는 tbExport로 추출한 파일을 다른(혹은 동일한) 티베로 데이터베이스에 저장하는 기능을 수행한다. tbImport의 수행..

www.gurubee.net

 

'Tibero' 카테고리의 다른 글

테이블 스페이스 관리  (0) 2023.01.18
Tibero Patch  (0) 2022.12.27
Tibero tbExport  (0) 2022.10.25
티베로 Error 내용 확인  (0) 2022.10.25
Tibero Controlfile 백업을 이용한 데이터파일 이동  (0) 2022.10.12