db2 udb운영가이드

34
DB2 UDB 운운 운운운 ------------------------------------------------------------------------- --------------- DB2 UDB 운운 운운운 운운운운운 운운 운운 운운운 ------------------------------------------------------------------------- ----------------------------------------------------------- 운운운운운 운운 운운 운운운

Upload: tess98

Post on 23-Jun-2015

2.221 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

DB2 UDB 운용 명령어

소프트웨어 기술 영업 지원팀

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

Page 2: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

목 차

UDB Start/Stop 명령어

Tablespace & Table 에 대한 정보

Database 백업 & 복구 명령어

에러 & 명령어 구문에 대한 도움말

Crontab 명령어

UDB 모니터링 툴

REORG & RUNSTATS

DB2 Administration Tools

DB2 기타 유틸리티

DBM CFG & DB CFG 환경 변수

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

Page 3: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

UDB Start/Stop 명령어

UDB StartIBM UDB 를 운용하려면, 다음과 같은 명령들을 이용하여데이타베이스, Instance 사용자로 로그인 한 다음, 데이타베이스를 시동시켜야 한다.

(주 : db2 activate db 명령어는 DB global memory 를 미리 메모리에상주시키는 명령어로 처음 connect 시의 시간을 단축시키는

효과가 있음. 단, db 를 Stop 시킬때 db2 deactivate db 명령어를 이용하여 memory 등을 release 시켜주어야 함.)

UDB 의 사용데이타베이스가 시동되면, 사용하고자 하는 데이타베이스로 연결을한다. 만약 데이타베이스가 없으면 "create database " 명령어를이용하여 데이타베이스를 생성시킨 후 연결한다.

데이타베이스가 연결되면, SQL 문을 사용하여 테이블의 생성,조작을 수행할 수 있다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

# su – db2inst1 $ db2start $ db2 activate db depsdb

$ db2 create db database 명 $ db2 connect to database 명 user userid using password

ex) select , insert , update , delete

Page 4: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

UDB 종료테이블에 대한 조작이 끝나면, 다음의 명령어를 이용하여 데이터베이스의 연결을 중단하고, 운용중인 데이타베이스의 시동을 끝낸다.

참고사항

db2start 시 에러발생 메시지가 나타났을 때“DB2START 처리가 성공적이었습니다.

그러나, 하나 이상의 통신 지원이 성공적이지 못했습니다.”라는메시지가 나오면…

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ su – db2inst1 $ db2 terminate $ db2 force application all $ db2stop

$ cd /home/db2inst1/sqllib/db2dump $ vi db2diag.log

파일의 마지막 부분에서 원인을 파악한다. ex) TCPIP service port 가 등록이 되지 않았다라는 메시지가

나오면 dbm cfg 에 service port 를 등록시켜주어야 한다.Db2 update dbm cfg using svcename 50000.

Page 5: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

Tablespace & Table 에 대한 정보

Tablespace의 정보를 보고자 할 경우

Table의 list를 보고자 할 경우

Table의 column 정보를 보고자 할 경우

참고사항

Tablespace 크기가 부족할 경우

‘상태’필드가 0x0000 으로 나오는지 확인‘가용 페이지 수’가 충분한지 확인만약 가용페이지 수가 충분하지 못하면 테이블 스페이스의크기를 늘려줌

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 connect to depsdb $ db2 list tablespaces show detail | more

$ db2 connect to depsdb $ db2 list tables for all | more

$ db2 connect to depsdb $ db2 “select tabschema, tabname, colname, typename,

length, scale, default, nullsfrom syscat.columns “

또는 제어센타 이용

$ db2 connect to depsdb$ db2 list tablespaces | moreor$ db2 list tablespace show detail | more

Page 6: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

ex) GisaTBS 가 부족할 경우

TableSpace가 Backup Pending 상태에 빠졌을 경우

ex) GisaTBS가 백업 보류

TableSpace가 Check Pending 상태에 빠졌을 경우

다음은 테이블의 점검보류 상태를 조회하는 것이다.SUBSTR은 SYSCAT.TABLES의 CONST_CHECKED 컬럼에 있는 처음 2

바이트를 추출하는데 사용된다.

첫번째 바이트는 외부 키 의무 규정을 나타내고,두번째 바이트는 점검 의무 규정을 나타낸다.

그 다음 T1과 T2 테이블을 점검 보류 상태로 설정합니다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

# 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)”

$ 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' “

$ db2 SET CONSTRAINTS FOR T1, T2 OFF

# su - db2inst1$ db2 connect to depsdb$ db2 list tablespaces | more

$ db2 backup database depsdb tablespace GisaTBS

Page 7: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

다음과 같이 수행하여 T1에 대한 제한 조건을 점검하고 첫번째 위반만을 얻습니다.

T1 및 T2에 대한 제한 조건을 점검하고, 예외 테이블 E1과 E2로위반 행을 기입한다.

IMMEDIATE CHECKED 옵션으로 T1의 FOREIGN KEY 제한 조건 점검과 T2의 CHECK 제한 조건 점검이 무시되도록 합니다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 SET CONSTRAINTS FOR T1 IMMEDIATE CHECKED

$ db2 SET CONSTRAINTS FOR T1, T2 IMMEDIATE CHECKED FOR EXCEPTION IN T1 USE E1, IN T2 USE E2

$ db2 SET CONSTRAINTS FOR T1 FOREIGN KEY, T2 CHECK IMMEDIATE UNCHECKED

Page 8: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

Database 백업 & 복구 명령어

데이타베이스의 안전성을 높이려면 주기적인 backup 과 데이타베이스 손상시 restore 해 주어야 한다.

Database 백업

AIX 에서 backup image 의 형태는 다음과 같다.

Database 복구

(여기서 * date_time 은 backup image file 에 포함된 timestamp 임)

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

# su – db2inst1 $ db2 list applications

사용자가 있으면, $ db2 force applications all

$ db2 backup db depsdb to /dev/rmt0

# su –db2inst1$ db2 restore db depsdb from /dev/rmt0 taken at date_time to target_directory]

Edi. 0. dsna . NODE0000 . CATN0000 . 1996.12.16121212 . 001--- -- ----- --------------------- ----------------------- | | | | | | | instance | backup image 의 순차번호 | | name | backup 한 날짜,시간(분,초 포함) | | | | | +-------> UDB EEE 가 사용하기 위한 필드 | +---------> 사용된 backup 유형 | 0 : 전체 데이터 베이스의 backup | 3 : tablespace 의 backup | 4 : 테이블 적재의 복사 | +--------> 데이터베이스 별명

Page 9: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

데이터베이스가 archive logging 일 경우에는 rollforward 명령어를 사용한다.

만일 특정 시점까지만 복원하려면, 다음과 같습니다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 rollforward db database_alias to end of logs ans stop overflow log path Log_Directory

$ db2 rollforward db database 명 to isotime and stop

Page 10: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

에러 & 명령어 구문에 대한 도움말

에러 메세지 발생시 만약 데이터베이스 운용시 문제가 생기면, vi 에디터를 이용하여

$HOME/sqllib/db2dump 디렉토리내의 db2diag.log 파일을 조사한다.만약 SQL Error Code 가 발생하였으면,다음과 같이 해당 메시지를 찾아본다.

이 메시지에는 에러의 원인과 해결을 위한 조치가 포함되어 있으므로,이를 통하여 문제점을 해결할 수 있다.

명령어 구문 확인

참고사항

갑자기 느려졌을 경우 LOCK 상태 확인

Index 설정 여부

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ su – db2inst1 $ db2 “ ? Sql0805 ”

에러메세지 원인과 조치를 보고 실행

$ su – db2inst1 $ db2 “ ? list ”

$ su – db2inst1 $ db2 get snapshot for locks on depsdb

유지되는 잠금, 현재 잠금대기중인 에이전트, 응용프로그램명,

응용프로그램 상태, 총대기시간, 모드상태 등을 확인

$ su – db2inst1$ dynexpln –d depsdb “select …..” –o explain.out

Page 11: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

손상된 데이터베이스의 강제 삭제 만약 데이타베이스의 손상으로 데이타베이스의 삭제가 제대로 되지

않을 경우에는 다음의 디렉토리를 삭제해야 한다.

(여기서 0000x 는 숫자로 데이타베이스가 생성된 순서를 나타낸다.즉, 손상된 데이타베이스의 물리적 디렉토리임)

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$HOME/instance_name$ rm -r SQL0000x

Page 12: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

Crontab 명령어

Crontab 명령어

crontab 의 사용법 root 로 login 한 다음 ,

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

crontab [ -e | -l | -r | -v | File ]

# crontab -e # COMPONENT_NAME:(CMDCNTL)commands needed for basic system needs ## FUNCTIONS:# (C) COPYRIGHT International Business Machines Corp. 1989,1994# All Rights Reserved# Licensed Materials - Property of IBM# US Government Users Restricted Rights - Use, duplication or# disclosure restricted by GSA ADP Schedule Contract

with IBM Corp. 0 11 * * * /usr/bin/errclear -d S,O 30

0 12 * * * /usr/bin/errclear -d H 90 0 0 * * * /tmp/lsh/rmscript 53 17 * * 2,4,6 /home/udbinst/myjob

Crontab [ -e / -l / -r / -v / File]-l crontab file 을 리스트

-r crontab directory 에서 crontab file 삭제 -v cron jobs 상태 보기

Page 13: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

다음에서 논의할 crontab file entry Format 으로 편집합니다. 끝부분의 실행파일에서는 다음과 같이 편집해야 합니다.

crontab File Entry Formatcrontab file 은 각각의 cron job 을 위해 다음의 Entry 를포함한다. 그 형태는 다음과 같다.

각각의 fields 는 다음의 값을 수용합니다.

crontab 의 사용예. /var/adm/cron/crontabs 디렉토리에 mycronjobs 파일을

상기의 형식으로 만든 다음, 다음의 명령을 수행한다. # crontab mycronjobs . mycronjobs 파일을 상기의 형식의 예는 다음과 같다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

# vi myjob su - db2inst1 “–c db2 backup db dbalias to /db2/”

minute hour day_of_month month weekday command

minute 0 through 59 hour 0 through 23 day_of_month 1 through 31 month 1 through 12 weekday 0 through 6 for Sunday through Saturday command a shell command

① 매시간마다 console 에 시간을 출력하는 예 0 * * * * echo The hour is `date` . >/dev/console② 월,수,금요일 오전 6 시 30 분마다 calendar 명령을 수행 30 6 * * 1, 3, 5 /usr/bin/calendar③ 매일 6:30 마다 calendar 명령을 수행 30 6 * * * /usr/bin/calendar④ 8 월 한밤중마다 maintenance 의 script 를 수행 0 23 * 8 * /u/harry/bin/maintenance

Page 14: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

UDB 모니터링 툴

EVENT MONITOR

SNAPSHOT MONITOR

EXPLAIN TOOL db2expln 툴은 시스템 카탈로그 테이블에 저장되어 있는 패키지의 정적 SQL 에 대한 선택된 액세스 플랜을 기술합니다.

* Interactive SQL 에 대해서는

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 create event monitor testmon for statements write to file --------- ------------- (event monitor 이름) (database,transactions, tables,...)

'/home/rdb/int1hqd1/SQL00001/db2event' maxfiles 24 maxfilesize 1024 nonblocked append “

$ db2 “set event monitor testmon state 1” $ db2 “select evmonname , event_mon_state(evmonname) from syscat.eventmonitors “$ db2evmon -db sample -evm testmon $ db2evmon -path /home/rdb/int1hqd1/SQL00001/db2event

(이전 작업의 대체용)

$ db2 “ get monitor switches” $ db2 “update monitor switches using bufferpool on uow on “$ db2 “ get snapshot for all on db 명 “ | more$ db2 “ get snapshot for locks on db 명 “ | more$ db2 “ get snapshot for application agentid # “ |more

( # 은 application handle ID 임)

db2expln -d (db 명) -c (user 명) -p (package 명) -s (section 번호) -o (outfile 이름)

export DYNEXPLN_OPTIONS = 'blocking all isolation ur queryopt 3’dynexpln <dbname> "<SQL statement>”

Page 15: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

explain 문 EXPLAIN 문은 제공된 설명 가능한 명령문에 선택된 액세스 플랜에관한 정보를 보관하고, 이 정보를 Explain 테이블에 둔다.설명가능 명령문은 DELETE, INSERT, SELECT, SELECT INTO,

UPDATE, VALUES 또는 VALUES INTO SQL 문이다. 이 명령문은 적용 업무 프로그램에 포함되거나 대화식으로 발행될 수있다. 이 명령문은 동적으로 준비될 수 있는 실행 가능한 명령문이다.

ex1> 간단한 SELECT 문을 설명하고 QUERYNO = 13 이라는 태그를 표시한다.

ex2> 간단한 SELECT 문을 설명하고 QUERYTAG = 'TEST13' 표시를 합니다.

ex3> 간단한 SELECT 문을 설명하고 QUERYNO = 13 과QUERYTAG = 'TEST13'으로 태그를 붙인다.

ex4> Explain 테이블이 존재하지 않으면 Explain 정보를 확보한다.

Visual Explain Visual Explain 을 실행하기 위해 다음과 같이 explain 정보를

저장할 테이블을 생성해야 한다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

EXPLAIN PLAN SET QUERYNO = 13 FOR SELECT C1 FROM T1

EXPLAIN PLAN SELECTION SET QUERYTAG = 'TEST13' FOR SELECT C1 FROM T1

EXPLAIN PLAN SELECTION SET QUERYNO = 13 SET QUERYTAG = 'TEST13’ FOR SELECT C1 FROM T1

EXPLAIN ALL FOR SELECT C1 FROM T1

/$HOME/sqllib/misc> db2 connect to sample /$HOME/sqllib/misc> db2 -tf EXPLAIN.DDL

Page 16: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

현재의 explain snapshot 을 변경

bindfile 내의 source 를 보기 위해 다음을 수행합니다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

db2 set current explain snapshot yes

db2bfd bindfile_name

Page 17: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

REORG & RUNSTATS

reorgchk 수행

위의 명령을 수행하면 다음과 같은 결과를 얻을 수 있습니다.

위의 결과에서 REORG 컬럼의 내용이 별표(*) 이면 그 테이블은 reorg 가필요하고 하이폰(-)이면 정상이므로 reorg 를 할 필요가 없습니다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

db2 -r out_file reorgchk current statistics on table tbl_name 또는 db2 reorgchk update statistics on table system

Table statistics: F1: 100*OVERFLOW/CARD < 5 F2: 100*TSIZE / ((FPAGES-1) * 4020) > 70 F3: 100*NPAGES/FPAGES > 80CREATOR NAME CARD OV NP FP TSIZE F1 F2 F3 REORG -------------------------------------------------------------------------------SYSIBM SYSCHECKS - - - - - - - - ---SYSIBM SYSDATATYPES 13 0 1 1 1027 0 - 100 ---SYSIBM SYSFUNCTIONS 104 0 8 8 728 0 2 100 -*-SYSIBM SYSINDEXES 57 17 3 5 9063 29 56 60 ***

Index statistics: F4: CLUSTERRATIO or normalized CLUSTERFACTOR > 80 F5: 100*(KEYS*(ISIZE+10)+(CARD-KEYS)*4) / (NLEAF*4096) > 50 F6: 90*(4000/(ISIZE+10)**(NLEVELS-2))*4096/ (KEYS*(ISIZE+10)+(CARD- KEYS)*4)<100CREATOR NAME CARD LEAF LVLS ISIZE KEYS F4 F5 F6 REORG-------------------------------------------------------------------------------Table: SYSIBM.SYSCHECKSSYSIBM IBM37 - - - - - - - - ---

Page 18: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

reorg 명령

reorg 명령은 해당 테이블의 데이터를 Physical 하게 재정렬하여조회의 Performance 를 향상시킨다.

runstats 명령

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

db2 reorg table 테이블명 [INDEX 색인명] [USE 테이블공간명]db2 reorg table tbl_name index idx_name use tempspace1

db2 runstats on table 테이블명 [WITH DISTRIBUTION [AND [DETAILED] {INDEXES ALL | INDEX 색인명}] | {AND | FOR} [DETAILED] {INDEXES ALL | INDEX 색인명}] [SHRLEVEL {CHANGE | REFERENCE}]db2 runstats on table inst.albums with distribution

and detailed indexes all

Page 19: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

DB2 Administration Tools

Instance 작업Instance란 데이터베이스가 운영되는 환경으로, 한 Instance 내에서는 유일한 데이터베이스 별명과 Authentication type 를 가져야 한다.이러한 Instance 는 여러 개 생성할 수 있으며즉, 데이터베이스가 운영되는 환경을 복수로 가질수 있다.Instance 를 달리 표현하면 데이터베이스 관리자(dbm) 라고도 하는 데,다른 데이터베이스 운영환경을 다루려면,각 Instance 별로 데이터베이스 매니저를 시동해야 한다.

root 로 login 하여 다음의 디렉토리로 이동합니다.

Instance 를 생성하기 위해 다음의 명령어를 사용합니다.

여기서 fenceid 는 UDF(User Defined Function)의 owner 로써instance 생성시 필요하다.Instance 의 삭제하는 명령은 다음과 같다.

이미 생성된 Instance 의 리스트를 보려면 다음의 명령어를 사용한다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

# cd /usr/lpp/db2_05_00/instance

# db2icrt -u fenceid dsna(instance 명)

# db2idrop (instance 명)

# db2ilist

Page 20: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

권한새로이 사용자를 추가 생성하여 Instance 를 시동할 수 있게 하려면,다음과 같이 그 사용자의 .profile 을 변경 및 적용시키고,dsna 사용자가 속한 cics group 의 member 이면 된다.이러한 사용자들은 sysadm권한을 갖는 instance owner 들로

데이터베이스 관리자 내의 어떠한 일도 수행할 수 있게 된다.이보다 낮은 dbadm 권한을 데이터베이스별로 줄 수 있는데, 마찬가지로 새로운 사용자의 .profile 을 변경및 적용시키고 grant 명령을 이용하여 권한을 부여한다.물론 먼저 dbadm 권한을 부여할 데이터베이스에 먼저 연결되어 있어야 한다. .profile 의 변경 및 grant 명령은 다음과 같다.(여기서 dsna 사용자는 cics group 의 한 member 라고 가정한다.)

다음의 system table 을 조회하여 해당 사용자가 어떤 권한을 갖는지를 알 수 있다.

Ex) Public 권한 가진 사람

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

# vi .profile . /home/dsna/sqllib/db2profile # . .profile $ db2 connect to edi $ db2 grant dbadm on database

to (사용자 id 또는 group id)

$ db2 connect to eddb user userid using password ; $ db2 “ select * from syscat.dbauth “ $ db2 “ select * from syscat.tabauth “ $ db2 “ select * from syscat.colauth “ $ db2 “ select * from syscat.packageauth “ $ db2 “ select * from syscat.schemaauth “

$ db2 connect to eddb user userid using password $ db2 “ select * from syscat.dbauth where grantee='PUBLIC'“

Page 21: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

PUBLIC 는 해당 DB 에 대해 connect, create table, add new packages의

권한을 가지고 있다.SYSIBM 의 grantor 는 인증부여가 데이타베이스 관리자(DBM)에 의해 부여되고, 이 특별한 부여는 데이타베이스 생성 중에 만들어진다.NOFENCEAUTH 컬럼의 'N' 값은 PUBLIC 가 NOT FENCED UDF 생성을허용하지 않음을 나타낸다. NOT FENCED Function 은 함수 Code와

데이터베이스 에이젼트 코드간의 Firewall 의 Protection 없이 instance 내에서 수행할 수 있다. Connect Authority 를 갖는 어떤 User 도 Fenced UDF 를 정의할 수 있다. 위의 예에서처럼 Connect To PUBLIC 는 Fenced UDF 를 허용하지 않는다.데이터베이스 사용자가 가지고 있는 권한을 삭제하려면 다음과 같은명령을 사용한다.

Data Moving Utility Export

table 의 데이터 내용을 DEL, IXF, WSF 형태로 반출할 수 있다. 반출된 내용은 import 나 load 유틸리티를 사용하여 테이블로다시 반입할 수 있다.

Import일단 export 명령으로 반출된 파일이나 이미 DEL,ASC,IXF,WSF형태로 존재하는 파일은 LOAD 명령(WSF 유형만 지원 안됨)이나IMPORT 명령으로 DB 의 TABLE 로 데이타를 이동시킬 수 있다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 export to educ.exp of ixf messages msg select * from org

$ db2 import from educ.exp of ixf messages msg.imp create into userid.orgg in tablespace_name

$ db2 revoke connect, bindadd, createtab on database from public

Page 22: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

method n ( column 명) 옵션을 부여할 수도 있습니다.그 옵션은 export 된 table 과 다른 column 을 주는 경우의option 입니다.

Load

LOAD 는 IMPORT 보다 속도가 빠릅니다.왜냐하면, INDEX 가 생성되는 방법에 있어서,IMPORT 는 IMPORT 되는 레코드 단위로 한번에 하나의 INDEX 를만들지만, LOAD 는 데이타의 LOAD 단계가 모두 끝난 이후에 BUILD단계에서 한꺼번에 INDEX 를 만드는 특징을 갖고 있기 때문이다.특기할 만한 옵션은 다음과 같은 것들이 있다.

테이블스페이스 및 테이블의 생성, 관리 및 삭제를 위한 명령 테이블스페이스 및 테이블의 생성

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 load from educ.exp of ixf messages msg.load remote file educ.긋replace into userid.orgg for exception userid.exp11

method ( L : 컬럼의 위치 (start,end) N : 컬럼의 이름 P : 컬럼의 순서 ) restart ( B : index creation D : error 인 레코드 제거 N : N 번째 레코드 부터 시작 )

$ db2 connect to db_name user userid using password $ db2 create regular tablespace dms04

managed by database using (file '/dms/dms04' 1000) extentsize 2;$ db2 create table test1 (partno integer, subpart integer) in DMS04

Page 23: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

테이블스페이스 및 테이블의 상태

테이블스페이스 및 테이블을 삭제

DB Application 관리 DB Application 들의 상태를 보거나 강제로 DB Application 을kill 하려고 할 때 다음의 명령을 이용한다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 list tablespaces $ db2 list tablespaces show detail $ db2 list tablespace containers for tblspace_id

$ db2 list tablespace containers for tblspace_id show detail

$ db2 list tables for all $ db2 "select tbspace , definer , tbspaceid, tbspacetype,

datatype from syscat.tablespaces " $ db2 "select tabname , tbspaceid, tbspace,

index_tbspace , long_tbspace from syscat.tables where tabname = 'SYSTABLES' "$ du -k

$ db2 drop tablespace test1space $ db2 drop table userid.test1

$ db2 list applications show detail $ db2 force application ( agent-id ); -------- 숫자 5 자리

Page 24: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

DB2 기타 유틸리티

Db2batchSQL 조회에 대한 BMT 용 유틸러티로써, 다음과 같이 사용합니다.

Db2look DB2 통계 추출 툴로써, 다음과 같이 사용합니다.

Db2exfmtExplain 테이블 항목을 형식화한다.데이타베이스명과 다른 규정화 정보가 제공되면,이 툴은 정보에 대한 Explain 테이블을 조회하고 그 결과를 형식화한다. (sqllib/misc 에 위치)

Db2tbst16진의 상태 값을 취하고("list tablespaces" 명령에서 제공됨)그 상태를 해석한다.

Db2gov적용업무에서 사용중인 데이타베이스가 어떤 것인지 알기 위해주기적으로 DB2 스냅샷 모니터를 호출해서 어떤 적용업무가 Governor구성 파일에서 지정한 한계를 초과하는 것으로 발견되면, 이 적용업무가 종료되거나 (FORCEd) 또는 그 우선 순위가 변경된다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2batch “SQL 조회문”

$ db2look -d db_name -u user_id -p -o 파일명

$ db2tbst 0x000c State = Quiesced Exclusive + Load Pending

$ db2gov start <Database> [nodenum <NodeNum>] <ConfigFile>

<LogFile> $ db2gov stop <Database> [nodenum <NodeNum>]

Page 25: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

여기서 <ConfigFile>은 Governor configuration 의 파일명을 말합니다.

Lstaltsm스냅샷 모니터에 대한 심각한 오류(alert)를 검색하기 위한 샘플 DDL(sqllib/samples/mon 에 위치)

Sample.pv스냅샷 모니터를 위한 샘플 성능 변수 프로파일(sqllib/samples/mon 에 위치)

Vesampl.ddl Visual Explain 을 위한 스냅샷을 반출(export)하기 위한 샘플 DDL(sqllib/samples/ve 에 위치)

Dynexpln 동적 SQL 에 대하여 db2expln 을 수행한다.

상기의 명령의 옵션은 다음과 같습니다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ dynexpln [[-d <database>] [-e <statement terminator>] [-f <input file>] [-g] [-i] [-t|

-o <output file> ] [-s <SQL statement>] [-u <userid> <password> ] ] [ -h | -?]

-e <statement terminator> = SQL 구분자(default 값은 no terminator)

-g = show optimizer plan graphs -h 또는 -? = 도움말 -i = show operator ID numbers -s <SQL statement> = 보고자 하는 SQL 문 -t = terminal output desired

Page 26: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

Db2ipxad 직접주소 지정모드를 사용하여 IPX/SPX 노드를 카탈로그화하는 원격클라이언트 시스템의 사용자를 위해 서버의 IPX/SPX** 인터네트워크주소를 리턴합니다.

Db2untagsysadm 이 "소유한" 데이타베이스의 컨테이너태그 정보를 삭제한다.

DB2/VM 과 관련된 사항 isql : ISQL 을 사용하여 DB2/VM 로부터의 액세스를 허용하기

위하여 더미(Dummy) 테이블을 작성합니다. sqldbsu : SQLDBSU 를 사용하여 DB2/VM 으로부터의 액세스를

허용하기 위하여 더미 테이블을 작성한다.

저장 프로시듀어와 관련된 사항 storproc.ddl : 저장프로시듀어 pseudo_catalog

DB2CLI.PROCEDURES를 생성하기 위한 샘플 DDL

storproc.dml : 저장 프로시듀어 pseudo_catalog DB2CLI.PROCEDURES

로의 항목 삽입을 위한 샘플 DML

Rebind기존의 bind 된 package 를 다시 bind 하고자 할 때 다음의 명령을이용한다.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀

$ db2 rebind package inst.myapp(package 명)

Page 27: DB2 UDB운영가이드

DB2 UDB 운용 가이드----------------------------------------------------------------------------------------

DBM CFG & DB CFG 환경 변수

DBM CFG 환경 변수 수정 데이터베이스 Instance 환경을 구성합니다. query_heap_sz : 대부분 생략시 값으로 충분하고 , 최소값으로는

aslheapsz 의 최소 5배의 값으로 설정한다. rqrioblk : 블로킹이 안된 커서의 경우 ,단일 sql 문으로 전송되는

자료가 너무 커서 생략 시 값으로 충분하지 않은 경우가 있다.

maxagents : 데이터베이스 연결시 마다 Agent 가 부여되고, 이 Agents 의 최대수

maxcagents : 동시적인 데이터베이스 Coordinating Agent 들의 최대 수

tm_database : 데이터베이스 인스턴스가 트랜잭션 매니저 역할을 할 경우에 그 제어 정보를 갖고 있는 데이터베이스 이름

udf_mem_sz : Fenced UDF 에 대한 공유 메모리 할당 크기 numdb : 동시에 활동 가능한 국지 데이터베이스의 수 aslheapsz : Application 계층에서 사용할 Heap Size

보다 자세한 내용은 DB2 관리 안내서를 참조하십시오..

DB CFG 환경 변수 변경 각 데이터베이스 별 환경을 구성합니다. maxappls : 해당 데이터베이스에서 연결될 수 있는 클라이언트

업무의 개수를 나타낸다. avg_appls : 해당 데이터베이스에서 사용될 수 있는 클라이언트

평균업무의 개수를 나타낸다.

보다 자세한 내용은 DB2 관리 안내서를 참조하십시오.

------------------------------------------------------------------------------------------------------------------------------------소프트웨어 기술 영업 지원팀