728x90
반응형

출처 Tomorrow's Way | 환영
원문 http://blog.naver.com/yhchoi78/80017022558
DB2 명령어 모음
 
서버 구성 파일             db2 get dbm cfg
인스턴스 이름을 변경하거나, service name, port 등을 변경             winntsystem32driversetcservices 파일수정
인스턴스 레벨의 변수를 수정             db2 update dbm cfg using [파라미터] [값]
DB2 Start             db2start
DB2 Stop             db2stop
                          db2 deactivate db (db2 activate db 로 메모리 상주시)
                          db2 force application all
                          db2stop
DB 연결끊기             db2 terminate
DB2 확인                          시작프로그램>IBM DB2>일반관리도구>제어센터
db 생성              db2  create  db  database명
db 연결              db2  connect to  database명  user userid using password
Tablespace의 정보       db2  list  tablespaces |  more
                                       db2 list tablespace show detail | more
Table의 list                          db2  list  tables  for  all  |  more
Table의 column 정보             db2 “select  tabschema,  tabname,  colname,  typename,
                                       length, scale,  default,  nulls from  syscat.columns “
                                       제어센터 이용
db 목록            db2 list db directory
 
tablespace(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 상태에 빠졌을 경우          
             $  db2 list tablespaces | more
             $  db2 backup database depsdb tablespace GisaTBS ( ex. 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
                            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
에러 메세지 발생시             $HOME/sqllib/db2dump 디렉토리내의 db2diag.log 파일을 조사
                                       db2   “ ?   Sql0805 ”             ex. db2  " ?  list "
갑자기 느려졌을 경우- LOCK 상태확인                          db2 get snapshot for locks on depsdb
                            - Index 설정 여부             dynexpln ?d depsdb “select …..” -o explain.out 
손상된 데이터베이스의 강제 삭제
$HOME/instance_name$  rm   -r   SQL0000x  디렉토리 삭제 0000x는 디비 생성 순서, 손상된 디비의 물리적 디렉토리
 
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
 
테이블스페이스  및 테이블의 생성
             $  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
테이블스페이스  및 테이블의 상태
             $  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 관리                           $  db2  list  applications  show  detail
                                                                 $  db2  force  application  ( agent-id ); agent-id는 숫자5자리
Db2batch - SQL 조회에 대한 BMT용 유틸러티       $  db2batch  “SQL 조회문”
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
            
             제어센터를 실행시킨 후 해당 데이터베이스에서 오른쪽 마우스버튼을 클릭
 
limt 쿼리                                 select * from staff fetch first 5 rows only
select empno, lastname, yyt
from ( select empno, lastname, firstnme,
                          rownumber() over (order by empno) as yyt
             from employee
      ) as t
where yyt between 20 and 30
 
ex.         select empno, row_number() over() as n from employee ;
             select empno, row_number() over(order by empno desc) as n from employee ;
             select job, years, row_number() over(partition by job order by years) as n from staff ;
 
autoincrement 쿼리
CREATE TABLE TESTTB
             (TEST INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE )
             ,NAME VARCHAR (15)
             ,YEAR INTEGER ) ;
 
A. Sequence 생성
db2 connect to sample
db2 “create sequence s1 start with 2 increment by 3 maxvalue 20 cycle”
B. NEXTVAL
db2 “values NEXTVAL FOR s1”
db2 “insert into myempl values (NEXTVAL FOR s1, ‘JOHN’, 50000)
C. Sequence 변경
db2 “alter sequence s1 minvalue 1”
D. Sequence 삭제
db2 “drop sequence s1 restrict”
 
auto commit 설정
db2cli.ini 파일에서 설정 또는 odbc connect 에서 설정.
명령센터>자동확약 체크
 
heap 크기 바꾸기 - 바꾸고난후 db2stop ; db2start;
db2 update db cfg for db이름 using APPLHEAPSZ 크기 ;
db2 update db cfg for db이름 using dbheap 크기
db2 update db cfg for db이름 using catalogcache_sz 크기
 
제어센타에서 칼럼을 변경하거나 삭제, 데이타 삽입
             데이터 삽입은 제어센터의 아이콘들중 명령센터 프로그램을 실행 .
             삭제 버튼은 처음에 테이블을 만들때만 쓰입니다. 즉 만들어진 후엔 기능을 사용할 수 없음.
 
현재날짜 char로 변환
SUBSTR(CHAR(CURRENT DATE,ISO),1,4) CONCAT SUBSTR(CHAR(CURRENT DATE,ISO),6,2) CONCAT SUBSTR(CHAR(CURRENT DATE, ISO),9,2)
 
dual 테이블사용
SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
 
insert into문
insert into aaa (TDM_ID, FEM_NO, ST_Dimension, ST_Spring_Rate )
select '2010', FEM_NO, ST_Dimension, ST_Spring_Rate from aaa where tdm_id = '1000'
또는
insert into aaa (TDM_ID, FEM_NO, ST_Dimension, ST_Spring_Rate )
= (select '2010', FEM_NO, ST_Dimension, ST_Spring_Rate from aaa where tdm_id = '1000')
 
CLP바로실행하기
db2cmd -c -i -w db2
 
 

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,