Your SlideShare is downloading. ×
DB2 UDB운영가이드
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

DB2 UDB운영가이드

2,136
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,136
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ DB2 UDB 운용 명령어 소프트웨어 기술 영업 지원팀 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 2. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ 목 차  UDB Start/Stop 명령어  Tablespace & Table 에 대한 정보  Database 백업 & 복구 명령어  에러 & 명령어 구문에 대한 도움말  Crontab 명령어  UDB 모니터링 툴  REORG & RUNSTATS  DB2 Administration Tools  DB2 기타 유틸리티  DBM CFG & DB CFG 환경 변수 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 3. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ UDB Start/Stop 명령어  UDB Start IBM UDB 를 운용하려면, 다음과 같은 명령들을 이용하여 데이타베이스, Instance 사용자로 로그인 한 다음, 데이타베이스를 시동시켜야 한다. # su – db2inst1 $ db2start $ db2 activate db depsdb (주 : db2 activate db 명령어는 DB global memory 를 미리 메모리에 상주시키는 명령어로 처음 connect 시의 시간을 단축시키는 효과가 있음. 단, db 를 Stop 시킬때 db2 deactivate db 명령어를 이용하여 memory 등을 release 시켜주어야 함.)  UDB 의 사용 데이타베이스가 시동되면, 사용하고자 하는 데이타베이스로 연결을 한다. 만약 데이타베이스가 없으면 "create database " 명령어를 이용하여 데이타베이스를 생성시킨 후 연결한다. $ db2 create db database 명 $ db2 connect to database 명 user userid using password 데이타베이스가 연결되면, SQL 문을 사용하여 테이블의 생성,조작을 수행할 수 있다. ex) select , insert , update , delete ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 4. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  UDB 종료 테이블에 대한 조작이 끝나면, 다음의 명령어를 이용하여 데이터베이스의 연결을 중단하고, 운용중인 데이타베이스의 시동을 끝낸다. $ su – db2inst1 $ db2 terminate $ db2 force application all $ db2stop 참고사항  db2start 시 에러발생 메시지가 나타났을 때 “DB2START 처리가 성공적이었습니다. 그러나, 하나 이상의 통신 지원이 성공적이지 못했습니다.”라는 메시지가 나오면… $ cd /home/db2inst1/sqllib/db2dump $ vi db2diag.log 파일의 마지막 부분에서 원인을 파악한다. ex) TCPIP service port 가 등록이 되지 않았다라는 메시지가 나오면 dbm cfg 에 service port 를 등록시켜주어야 한다. Db2 update dbm cfg using svcename 50000. ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 5. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ Tablespace & Table 에 대한 정보  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 으로 나오는지 확인 ‘가용 페이지 수’가 충분한지 확인 만약 가용페이지 수가 충분하지 못하면 테이블 스페이스의 크기를 늘려줌 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 6. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ 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가 Backup Pending 상태에 빠졌을 경우 # su - db2inst1 $ db2 connect to depsdb $ db2 list tablespaces | more ex) GisaTBS가 백업 보류 $ db2 backup database depsdb tablespace GisaTBS  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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 7. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ 그 다음 T1과 T2 테이블을 점검 보류 상태로 설정합니다. $ db2 SET CONSTRAINTS FOR T1, T2 OFF ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 8. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ 다음과 같이 수행하여 T1에 대한 제한 조건을 점검하고 첫번째 위반만을 얻습니다. $ db2 SET CONSTRAINTS FOR T1 IMMEDIATE CHECKED T1 및 T2에 대한 제한 조건을 점검하고, 예외 테이블 E1과 E2로 위반 행을 기입한다. $ db2 SET CONSTRAINTS FOR T1, T2 IMMEDIATE CHECKED IMMEDIATE CHECKED 옵션으로 T1의 FOREIGN KEY 제한 조건 점검과 T2의 CHECK 제한 조건 점검이 무시되도록 합니다. $ db2 SET CONSTRAINTS FOR T1 FOREIGN KEY, T2 CHECK IMMEDIATE UNCHECKED ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 9. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ Database 백업 & 복구 명령어 데이타베이스의 안전성을 높이려면 주기적인 backup 과 데이타베이스 손상시 restore 해 주어야 한다.  Database 백업 # su – db2inst1 $ db2 list applications 사용자가 있으면, $ db2 force applications all $ db2 backup db depsdb to /dev/rmt0  AIX 에서 backup image 의 형태는 다음과 같다. Edi. 0. dsna . NODE0000 . CATN0000 . 1996.12.16121212 . 001 --- -- ----- --------------------- ----------------------- | | | | | | | instance | backup image 의 순차번호 | | name | backup 한 날짜,시간(분,초 포함) | | | | | +-------> UDB EEE 가 사용하기 위한 필드 | +---------> 사용된 backup 유형 | 0 : 전체 데이터 베이스의 backup | 3 : tablespace 의 backup | 4 : 테이블 적재의 복사 | +--------> 데이터베이스 별명  Database 복구 # su –db2inst1 $ db2 restore db depsdb from /dev/rmt0 taken at date_time to target_directory] ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 10. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ (여기서 * date_time 은 backup image file 에 포함된 timestamp 임) ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 11. 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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 12. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ 에러 & 명령어 구문에 대한 도움말  에러 메세지 발생시 만약 데이터베이스 운용시 문제가 생기면, vi 에디터를 이용하여 $HOME/sqllib/db2dump 디렉토리내의 db2diag.log 파일을 조사한다. 만약 SQL Error Code 가 발생하였으면, 다음과 같이 해당 메시지를 찾아본다. $ su – db2inst1 $ db2 “ ? Sql0805 ” 에러메세지 원인과 조치를 보고 실행 이 메시지에는 에러의 원인과 해결을 위한 조치가 포함되어 있으므로, 이를 통하여 문제점을 해결할 수 있다.  명령어 구문 확인 $ su – db2inst1 $ db2 “ ? list ” 참고사항  갑자기 느려졌을 경우  LOCK 상태 확인 $ su – db2inst1 $ db2 get snapshot for locks on depsdb 유지되는 잠금, 현재 잠금대기중인 에이전트, 응용프로그램명, 응용프로그램 상태, 총대기시간, 모드상태 등을 확인  Index 설정 여부 $ su – db2inst1 $ dynexpln –d depsdb “select …..” –o explain.out ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 13. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 14. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  손상된 데이터베이스의 강제 삭제 만약 데이타베이스의 손상으로 데이타베이스의 삭제가 제대로 되지 않을 경우에는 다음의 디렉토리를 삭제해야 한다. $HOME/instance_name$ rm -r SQL0000x (여기서 0000x 는 숫자로 데이타베이스가 생성된 순서를 나타낸다. 즉, 손상된 데이타베이스의 물리적 디렉토리임) ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 15. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ Crontab 명령어  Crontab 명령어 crontab [ -e | -l | -r | -v | File ] Crontab [ -e / -l / -r / -v / File] -l crontab file 을 리스트 -r crontab directory 에서 crontab file 삭제 -v cron jobs 상태 보기  crontab 의 사용법 root 로 login 한 다음 , # 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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 16. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ 다음에서 논의할 crontab file entry Format 으로 편집합니다. 끝부분의 실행파일에서는 다음과 같이 편집해야 합니다. # vi myjob su - db2inst1 “–c db2 backup db dbalias to /db2/”  crontab File Entry Format crontab file 은 각각의 cron job 을 위해 다음의 Entry 를 포함한다. 그 형태는 다음과 같다. minute hour day_of_month month weekday command 각각의 fields 는 다음의 값을 수용합니다. 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  crontab 의 사용예 . /var/adm/cron/crontabs 디렉토리에 mycronjobs 파일을 상기의 형식으로 만든 다음, 다음의 명령을 수행한다. # crontab mycronjobs . mycronjobs 파일을 상기의 형식의 예는 다음과 같다. ① 매시간마다 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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 17. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ UDB 모니터링 툴  EVENT MONITOR $ 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 (이전 작업의 대체용)  SNAPSHOT MONITOR $ 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 임)  EXPLAIN TOOL db2expln 툴은 시스템 카탈로그 테이블에 저장되어 있는 패키지의 정적 SQL 에 대한 선택된 액세스 플랜을 기술합니다. db2expln -d (db 명) -c (user 명) -p (package 명) -s (section 번호) -o (outfile 이름) * Interactive SQL 에 대해서는 export DYNEXPLN_OPTIONS = 'blocking all isolation ur queryopt 3’ dynexpln <dbname> "<SQL statement>” ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 18. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ explain 문  EXPLAIN 문은 제공된 설명 가능한 명령문에 선택된 액세스 플랜에 관한 정보를 보관하고, 이 정보를 Explain 테이블에 둔다. 설명가능 명령문은 DELETE, INSERT, SELECT, SELECT INTO, UPDATE, VALUES 또는 VALUES INTO SQL 문이다. 이 명령문은 적용 업무 프로그램에 포함되거나 대화식으로 발행될 수 있다. 이 명령문은 동적으로 준비될 수 있는 실행 가능한 명령문이다. ex1> 간단한 SELECT 문을 설명하고 QUERYNO = 13 이라는 태그를 표시한 다. EXPLAIN PLAN SET QUERYNO = 13 FOR SELECT C1 FROM T1 ex2> 간단한 SELECT 문을 설명하고 QUERYTAG = 'TEST13' 표시를 합니 다. EXPLAIN PLAN SELECTION SET QUERYTAG = 'TEST13' FOR SELECT C1 FROM T1 ex3> 간단한 SELECT 문을 설명하고 QUERYNO = 13 과 QUERYTAG = 'TEST13'으로 태그를 붙인다. EXPLAIN PLAN SELECTION SET QUERYNO = 13 SET QUERYTAG = ex4> Explain 테이블이 존재하지 않으면 Explain 정보를 확보한다. EXPLAIN ALL FOR SELECT C1 FROM T1  Visual Explain Visual Explain 을 실행하기 위해 다음과 같이 explain 정보를 저장할 테이블을 생성해야 한다. /$HOME/sqllib/misc> db2 connect to sample /$HOME/sqllib/misc> db2 -tf EXPLAIN.DDL ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 19. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 20. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  현재의 explain snapshot 을 변경 db2 set current explain snapshot yes  bindfile 내의 source 를 보기 위해 다음을 수행합니다. db2bfd bindfile_name ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 21. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ REORG & RUNSTATS  reorgchk 수행 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 > 80 CREATOR 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)<100 CREATOR NAME CARD LEAF LVLS ISIZE KEYS F4 F5 F6 REORG ------------------------------------------------------------------------------- Table: SYSIBM.SYSCHECKS SYSIBM IBM37 - - - - - - - - --- 위의 결과에서 REORG 컬럼의 내용이 별표(*) 이면 그 테이블은 reorg 가 필요하고 하이폰(-)이면 정상이므로 reorg 를 할 필요가 없습니다. ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 22. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  reorg 명령 db2 reorg table 테이블명 [INDEX 색인명] [USE 테이블공간명] db2 reorg table tbl_name index idx_name use tempspace1 reorg 명령은 해당 테이블의 데이터를 Physical 하게 재정렬하여 조회의 Performance 를 향상시킨다.  runstats 명령 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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 23. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ DB2 Administration Tools  Instance 작업 Instance 란 데이터베이스가 운영되는 환경으로, 한 Instance 내에서는 유일한 데이터베이스 별명과 Authentication type 를 가져야 한다. 이러한 Instance 는 여러 개 생성할 수 있으며 즉, 데이터베이스가 운영되는 환경을 복수로 가질수 있다. Instance 를 달리 표현하면 데이터베이스 관리자(dbm) 라고도 하는 데, 다른 데이터베이스 운영환경을 다루려면, 각 Instance 별로 데이터베이스 매니저를 시동해야 한다. root 로 login 하여 다음의 디렉토리로 이동합니다. # cd /usr/lpp/db2_05_00/instance Instance 를 생성하기 위해 다음의 명령어를 사용합니다. # db2icrt -u fenceid dsna(instance 명) 여기서 fenceid 는 UDF(User Defined Function)의 owner 로써 instance 생성시 필요하다. Instance 의 삭제하는 명령은 다음과 같다. # db2idrop (instance 명) 이미 생성된 Instance 의 리스트를 보려면 다음의 명령어를 사용한다. # db2ilist ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 24. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  권한 새로이 사용자를 추가 생성하여 Instance 를 시동할 수 있게 하려면, 다음과 같이 그 사용자의 .profile 을 변경 및 적용시키고, dsna 사용자가 속한 cics group 의 member 이면 된다. 이러한 사용자들은 sysadm 권한을 갖는 instance owner 들로 데이터베이스 관리자 내의 어떠한 일도 수행할 수 있게 된다. 이보다 낮은 dbadm 권한을 데이터베이스별로 줄 수 있는데, 마찬가지로 새로운 사용자의 .profile 을 변경및 적용시키고 grant 명령을 이용하여 권한을 부여한다. 물론 먼저 dbadm 권한을 부여할 데이터베이스에 먼저 연결되어 있어야 한다. .profile 의 변경 및 grant 명령은 다음과 같다. (여기서 dsna 사용자는 cics group 의 한 member 라고 가정한다.) # vi .profile . /home/dsna/sqllib/db2profile # . .profile $ db2 connect to edi $ db2 grant dbadm on database to (사용자 id 또는 group id) 다음의 system table 을 조회하여 해당 사용자가 어떤 권한을 갖는 지를 알 수 있다. $ 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 “ Ex) Public 권한 가진 사람 $ db2 connect to eddb user userid using password $ db2 “ select * from syscat.dbauth where grantee='PUBLIC'“ ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 25. 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 를 허용하지 않는 다. 데이터베이스 사용자가 가지고 있는 권한을 삭제하려면 다음과 같은 명령을 사용한다. $ db2 revoke connect, bindadd, createtab on database from public  Data Moving Utility  Export $ db2 export to educ.exp of ixf messages msg select * from org table 의 데이터 내용을 DEL, IXF, WSF 형태로 반출할 수 있다. 반출된 내용은 import 나 load 유틸리티를 사용하여 테이블로 다시 반입할 수 있다.  Import 일단 export 명령으로 반출된 파일이나 이미 DEL,ASC,IXF,WSF 형태로 존재하는 파일은 LOAD 명령(WSF 유형만 지원 안됨)이나 IMPORT 명령으로 DB 의 TABLE 로 데이타를 이동시킬 수 있다. $ db2 import from educ.exp of ixf messages msg.imp create into userid.orgg in tablespace_name ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 26. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ method n ( column 명) 옵션을 부여할 수도 있습니다. 그 옵션은 export 된 table 과 다른 column 을 주는 경우의 option 입니다.  Load $ db2 load from educ.exp of ixf messages msg.load remote file educ.긋 replace into userid.orgg for exception userid.exp11 LOAD 는 IMPORT 보다 속도가 빠릅니다. 왜냐하면, INDEX 가 생성되는 방법에 있어서, IMPORT 는 IMPORT 되는 레코드 단위로 한번에 하나의 INDEX 를 만들지만, LOAD 는 데이타의 LOAD 단계가 모두 끝난 이후에 BUILD 단계에서 한꺼번에 INDEX 를 만드는 특징을 갖고 있기 때문이다. 특기할 만한 옵션은 다음과 같은 것들이 있다. 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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 27. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  테이블스페이스 및 테이블의 상태 $ 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  DB Application 관리 DB Application 들의 상태를 보거나 강제로 DB Application 을 kill 하려고 할 때 다음의 명령을 이용한다. $ db2 list applications show detail $ db2 force application ( agent-id ); -------- 숫자 5 자리 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 28. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------ DB2 기타 유틸리티  Db2batch SQL 조회에 대한 BMT 용 유틸러티로써, 다음과 같이 사용합니다. $ db2batch “SQL 조회문”  Db2look DB2 통계 추출 툴로써, 다음과 같이 사용합니다. $ db2look -d db_name -u user_id -p -o 파일명  Db2exfmt Explain 테이블 항목을 형식화한다. 데이타베이스명과 다른 규정화 정보가 제공되면, 이 툴은 정보에 대한 Explain 테이블을 조회하고 그 결과를 형식화한다. (sqllib/misc 에 위치)  Db2tbst 16 진의 상태 값을 취하고("list tablespaces" 명령에서 제공됨) 그 상태를 해석한다. $ db2tbst 0x000c State = Quiesced Exclusive + Load Pending  Db2gov 적용업무에서 사용중인 데이타베이스가 어떤 것인지 알기 위해 주기적으로 DB2 스냅샷 모니터를 호출해서 어떤 적용업무가 Governor 구성 파일에서 지정한 한계를 초과하는 것으로 발견되면, 이 적용업무가 종료되거나 (FORCEd) 또는 그 우선 순위가 변경된다. $ db2gov start <Database> [nodenum <NodeNum>] <ConfigFile> <LogFile> $ db2gov stop <Database> [nodenum <NodeNum>] ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 29. 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 ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 30. DB2 UDB 운용 가이드 ---------------------------------------------------------------------- ------------------  Db2ipxad 직접주소 지정모드를 사용하여 IPX/SPX 노드를 카탈로그화하는 원격 클라이언트 시스템의 사용자를 위해 서버의 IPX/SPX** 인터네트워크 주소를 리턴합니다.  Db2untag sysadm 이 "소유한" 데이타베이스의 컨테이너태그 정보를 삭제한다.  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 명) ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀
  • 31. 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 관리 안내서를 참조하십시오. ------------------------------------------------------------------------------------------------------------------------------------ 소프트웨어 기술 영업 지원팀

×