DB2 운용 메뉴얼.

2008. 11. 9. 10:20Database

출처 : http://cafe.naver.com/javalove.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1451

atabase.sarang.net 에 올려있는 강좌를 HTML로 조금 정리한겁니다. ^^

  운용명령어

-->
   DB2START
     IBM UDB를 운용하려면, 다음과 같은 명령들을 이용하여 데이타베이스,
     Instance 사용자로 로그인 한 다음, 데이타베이스를 시동시켜야 한다.
     1. su db2eniis
     2. db2start
     3. db2 activate db depsdb
        -> db2 activate db 명령어는 DB global memory 를 미리 메모리에 상주시키는 명령어로 처음
            connect 시의 시간을 단축시키는 효과가 있음. 단, db 를 stop 시킬때 db2 deactivate db 명령어를 이용하여
            memory 등을 release 시켜주어야 함.
   DB2STOP
     테이블에 대한 조작이 끝나면, 다음의 명령어를 이용하여 데이터베이스의 연결을 중단하고,
     운용중인 데이타베이스의 시동을 끝낸다.
     $ su - db2inst1
     $ db2 terminate
     $ db2 force application all
     $ db2stop
   [참조] db2start시 에러발생 메시지가 나타났을 때
     "DB2START 처리가 성공적이었습니다. 그러나, 하나 이상의 통신 지원이 성공적이지 못했습니다."라는 메시지가 나오면…
      $ cd /home/db2eniis/sqllib/db2dump
      $ vi db2diag.log 파일의 마지막 부분에서 원인을 파악한다 .
      ex) TCPIP service port가 등록이 되지 않았다라는 메시지가 나오면
           dbm cfg에 service port를 등록시켜주어야 한다. Db2 update dbm cfg using svcename 50000.
   Tablespace의 정보를 보고자 할 경우
    $ db2 connect to depsdb
     $ db2 list tablespaces | more or
     $ db2 list tablespace show detail | more
 ■  Table의 list를 보고자 할 경우
     $ db2 connect to depsdb
     $ db2 list tables for all | more 
 ■  Table의 column 정보를 보고자 할 경우
     $ db2 connect to depsdb
     $ db2 "select tabschema, tabname, colname, typename, length, scale, default, nulls from syscat.columns "
        또는 제어센타 이용
 ■  [참조] Tablespace 크기가 부족할 경우  
      $ db2 connect to depsdb
     $ db2 list tablespaces show detail | more
     상태'필드가 0x0000으로 나오는지 확인
     '가용 페이지 수'가 충분한지 확인
     만약 가용페이지 수가 충분하지 못하면 테이블 스페이스의 크기를 늘려줌
     ex) GisaTBS가 부족할 경우
      # su - root smit에서 datavg1에 Logical Volume 64M 짜리를 하나 만듬
     # cd /dev # chown db2inst1:db2iadm1 gisalv2
     $ su - db2inst1 $ db2 connect to depsdb
     $ db2 "alter tablespace GisaTBS add (device '/dev/rgisalv2' 16000)"
 ■ TableSpace가 Check Pending 상태에 빠졌을 경우
     다음은 테이블의 점검보류 상태를 조회하는 것이다.
     SUBSTR은 SYSCAT.TABLES의 CONST_CHECKED 컬럼에 있는 처음 2바이트를 추출하는데 사용된다.
 
     첫번째 바이트는 외부 키 의무 규정을 나타내고, 두번째 바이트는 점검 의무 규정을 나타낸다.
     $ db2 " SELECT TABNAME, SUBSTR( CONST_CHECKED, 1, 1 ) AS FK_CHECKED,
        SUBSTR( CONST_CHECKED, 2, 1 ) AS CC_CHECKED FROM SYSCAT.TABLES WHERE STATUS = 'C' "
     그 다음 T1과 T2 테이블을 점검 보류 상태로 설정합니다.
     $ db2 SET CONSTRAINTS FOR T1, T2 OFF
     다음과 같이 수행하여 T1에 대한 제한 조건을 점검하고 첫번째 위반만을 얻습니다.
     $ db2 SET CONSTRAINTS FOR T1 IMMEDIATE CHECKED
     T1 및 T2에 대한 제한 조건을 점검하고, 예외 테이블 E1과 E2로 위반 행을 기입한다.
     $ db2 SET CONSTRAINTS FOR T1, T2 IMMEDIATE CHECKED FOR EXCEPTION IN T1 USE E1, IN T2 USE E2
     IMMEDIATE CHECKED 옵션으로 T1의 FOREIGN KEY 제한 조건 점검과
     T2의 CHECK 제한 조건 점검이 무시되도록 합니다.
     $ db2 SET CONSTRAINTS FOR T1 FOREIGN KEY, T2 CHECK IMMEDIATE UNCHECKED
■ 에러 메세지 발생시
   만약 데이터베이스 운용시 문제가 생기면,
   vi 에디터를 이용하여 $HOME/sqllib/db2dump 디렉토리내의 db2diag.log 파일을 조사한다.
   만약 SQL Error Code가 발생하였으면, 다음과 같이 해당 메시지를 찾아본다.
   $ su - db2inst1
   $ db2 " ? Sql0805 "
   에러메세지 원인과 조치를 보고 실행
   이 메시지에는 에러의 원인과 해결을 위한 조치가 포함되어 있으므로, 이를 통하여 문제점을 해결할 수 있다.