이것저것 정리하는 블로그

오랫만에 IBM DeveloperWorks에 올라온 글을 소개합니다.
뭐... DB2에 대한 내용이라서 내가 업무에 쓸 일은 없을것 같긴한데, 그래도 가까운 미래에 한번쯤은 필요하지 않을까해서 링크를 모아둔다는 생각으로 소개하려합니다.

1. Oracle 11g 스킬을 활용하여 Linux, UNIX 및 Windows용 DB2 9.7 학습
원문 링크 : Oracle 11g 스킬을 활용하여 Linux, UNIX 및 Windows용 DB2 9.7 학습
DB2® 9 스킬 향상에 관심이 있는 데이터베이스 전문가라면, 다른 관계형 데이터베이스 제품을 다루면서 이미 상당한 수준의 데이터베이스 스킬을 갖추고 있을 가능성이 큽니다. 최신 버전의 DB2 및 Oracle을 위해 최근에 업데이트된 이 기사에서는 현재 가지고 있는 Oracle 11g 관련 지식을 바탕으로 Linux®, UNIX® 및 Windows®용 IBM® DB2 9.7에 대한 스킬을 빠르게 습득하는 방법을 보여줍니다.


2. DB2 9.7에서의 SQL 호환성
원문 링크 : DB2 9.7에서의 SQL 호환성
  "트리거에서 기능이 향상된 오브젝트로" 기사에서는 DB2 9.7에 새로 도입된 Oracle 호환성 기능의 데모를 제시합니다.


3. IBM 데이타 이동 도구
원문 링크 : IBM 데이타 이동 도구
이 기사에서는 다양한 원본에서 손쉽게 데이터를 이동하기 위한 매우 간단하고 강력한 도구를 소개합니다. 이 도구를 사용하면 거의 또는 전혀 아무 것도 변경할 필요 없이 Oracle과 Sybase의 다양한 애플리케이션이 Linux®, UNIX® 및 Windows®용 IBM® DB2® 버전 9.7에서 그대로 작동하도록 할 수 있습니다. 또한, 이 도구를 사용하여 다른 다양한 데이터베이스 관리 시스템에서 Linux, UNIX 및 Windows용 DB2와 z/OS®용 DB2로 데이터를 이동할 수도 있습니다. 이 도구는 pureScale 환경에서 원본 데이터베이스에서 DB2로의 데이터 이동도 지원합니다.


Comment +0

 Oracle 10g에서 종종 문제가 되고 있어서 아래와 같이 고쳐봤습니다. 11g에서도 문제가 되는지는 모르겠습니다. 나중에 확인하면 문서에 추가하도록 하겠습니다.

 아래의 query를 실행해보면 해당 계정에 설정된 profile의 제한값이 나온다.
SELECT A.USERNAME, B.PROFILE, B.RESOURCE_NAME, B.RESOURCE_TYPE, B.LIMIT   
FROM DBA_USERS A, DBA_PROFILES B
WHERE A.PROFILE = B.PROFILE
AND A.USERNAME = '계정명';

 "FAILED_LOGIN_ATTEMPTS           PASSWORD 10"라는 부분이 보일겁니다.
여기를 unlimited로 바꾸거나 새로운 profile을 만들면서 unlimited로 해주고 해당 계정의 profile을 바꿔주면 됩니다.

아래는 profile을 만들고, 사용자계정의 profile을 바꿔주는 구문입니다.
CREATE PROFILE DEFAULT_P1 LIMIT
    COMPOSITE_LIMIT UNLIMITED
    SESSIONS_PER_USER UNLIMITED
    CPU_PER_SESSION UNLIMITED
    CPU_PER_CALL UNLIMITED
    LOGICAL_READS_PER_SESSION UNLIMITED
    LOGICAL_READS_PER_CALL UNLIMITED
    IDLE_TIME UNLIMITED
    CONNECT_TIME UNLIMITED
    PRIVATE_SGA UNLIMITED
    FAILED_LOGIN_ATTEMPTS UNLIMITED
    PASSWORD_LIFE_TIME UNLIMITED
    PASSWORD_REUSE_TIME UNLIMITED
    PASSWORD_REUSE_MAX UNLIMITED
    PASSWORD_VERIFY_FUNCTION NULL
    PASSWORD_LOCK_TIME UNLIMITED
    PASSWORD_GRACE_TIME UNLIMITED
;

ALTER USER 계정명 PROFILE DEFAULT_P1;
Profile을 바꾸고 잘못된 비밀번호를 입력하는 방식으로 시험해 봤는데 아직까지는 잘 되네요.

Comment +0

 Tibero 4 SP1을 사용한지도 벌써 일년이 넘어가고 있다. 그동안 안정화에 꽤 많은 노력을 기울였고, 생각보다 오래 걸렸지만, Tibero를 그럭저럭 사용하고 있다. 문제는 아직까지는 초기에 Tibero 영업에서 얘기한 "Oracle 10g 기준으로 거의 모든(?) 기능이 동일하다"는 얘기에는 많이 모자란 모습이라는 것이다.

 그동안 Tibero에 대해서 몇번 얘기했었는데, 이번에 얘기할 것은 Oracle의 exp, imp에 해당하는 tbexport와 tbimport에 대한 얘기이다. tbexport는 Oracle의 exp와 같이 Online 상태의 DB에서 data를 backup할때 사용하는

 무엇이 문제인가!!
 Oracle에서 export한 덤프 파일을 import할 때에 원본 DB에는 A라는 Tablespace가 존재하지만, import하는 DB에는 A라는 Tablespace가 없다고 가정해보자. 어떻게 되는가. 아래의 이미지를 보면 쉽게 이해가 가지 않을까?
두 DB에 생성된 Tablespace 현황

  DB-1의 ERP라는 유저를 export한 뒤 DB-2의 ERP라는 유저에 import한다고 할 때, 두 DB에 생성된 Tablespace가 서로 다르다면, Oracle에서는 DB-1에서 export한 Table들이 원래 생성되었던 A라는 Tablespace가 DB-2에 없다면 import하는 계정의 default tablespace인 B에 Table을 생성하죠. Tibero에서도 이렇게 될 줄 알았습니다.


 그런데... Tibero에서는 import하는 DB에 원래 DB-1에서 Table이 생성될때 사용했던 Tablespace와 동일한 이름의 Tablespace가 없으면 에러를 발생시키네요. ignore=y 옵션을 주고 시작하면 해당 오류를 그냥 통과하고 나머지를 import합니다만 오류가 발생한 Table은 수작업으로 생성해야 합니다.

Comment +0