DB2 Version 9.1 부터는 좀 더 쉽게 시스템의 상태를 모니터링 할 수 있도록 Administrator View가 등장을 했다.
뭐,내부적으로 보면 기존에 존재하던 Catalog Table/View나 SYSPROC 소유의 테이블 펑션들을 기본으로 해서 만든
뷰 이지만 , 좀 더 사용하기 쉽게 해 놓았다는 것에 의미가 있는 듯 하다.
V9.1 이전 버젼에서는 SYSPROC 소유의 펑션들을 이용하여 동일한 데이터를 가져 올 수 있다.
Version 9.1 Fixpack 4a에서는 약 59개 , Version 9.5 Fixpack 0 에서는 약 62개의 ADMIN View가 존재를 한다.
View 이름들은 간단하게 다음 쿼리를 이용하여 파악 할 수 있다.
SELECT TABNAME FROM syscat.tables WHERE TYPE = 'V' AND tabschema = 'SYSIBMADM' |
해당 뷰들이 참조하고 있는 Function에 대해서 확인을 해 보고자 한다면 다음 쿼리를 이용하여 쉽게 확인 할 수 있다.
SELECT VIEW_DEFINITION FROM sysibm.views WHERE table_name = 'ENV_PROD_INFO' AND table_schema = 'SYSIBMADM' |
그럼 간단하게 사용할 수 있는 뷰 들을 살펴 보자.
Host ID와 CPU 개수 및 메모리를 확인하기 위해서는 O/S상의 uname , topas나 glance , 또는 db2pd -osinfo 등을 이용하여 정보를 확인 한다. 이 부분을 SQL을 이용해서 확인하고 자 한다면 ENV_SYS_INFO 뷰를 이용하면 된다. (내부적으로는 SYSPROC.ENV_GET_SYS_INFO() 테이블 펑션을 사용한다.)
SELECT * FROM sysibmadm.env_sys_info
|
위와 같이 간단하게 시스템 정보도 확인이 가능하다.
그리고 오라클 같은 경우 자신의 Session ID를 쉽게 확인 할 수 있도록 v$mystat뷰를 제공해 주며, 또한 개별 Session별로 자원 사용량을 쉽게 확인 할 수 있게 해 놓았다.
하지만 DB2에서는 자신의 Agent ID를 쉽게 알 수 있는 뷰 는 아직 존재하지 않는다.
대신 application_id( ) 라는 펑션을 이용하여 Application ID를 가져온 후 이 값을 가지고 자신의 Agent ID를 찾아야 한다.
SELECT agent_id , client_pid , db_name FROM sysibmadm.snapappl_info a , ( SELECT application_id( ) AS appl_id FROM sysibm.sysdummy1 ) b WHERE a.appl_id = b.appl_id
|
다음은 유용한 ADMIN view들에 대해서 쿼리수행 결과를 보여주도록 한다.
- db2owner 및 DB 버전 확인 SELECT inst_name , service_level version , fixpack_num FROM sysibmadm.env_inst_info
|
- DB2 Product 정보 확인 SELECT * FROM sysibmadm.env_prod_info
|
- 테이블 및 인덱스의 물리적 사이즈 확인(파티션 된 테이블의 사이즈도 확인 가능) Size값은 KB 단위 이다.
SELECT * FROM sysibmadm.admintabinfo
전체 테이블을 볼 때는 위처럼 ADMINTABINFO 뷰를 이용하여 쉽게 조회가 가능하나, 특정 하나의 테이블에 대해서 조회를 하고자 할 경우 SELECT * FROM sysibmadm.admintabinfo where tabname = ‘AAA’ 이렇게 조회를 하는 것 보다는 SELECT * FROM TABLE( sysproc.admin_get_tab_info( 'DB2INS91' , 'AAA' ) ) AS tabinfo 로 조회를 하는 것이 좀더 시스템 자원을 덜 사용하고 , 빠른 결과를 얻을 수 있다. |
- DB2 자원사용 현황 모니터링 기본적으로 DB2가 사용하는 메모리 사용량을 보기 위해서는 db2mtrk라는 명령어를 많이 사용한다. 이런 부분을 O/S상의 명령어가 아닌 SQL을 이용하여 가져 와서 쉽게 자원 사용량을 모니터링 할 수 있다. [db2ins91|db2ins91]/home/db2ins91>db2mtrk -d Tracking Memory on: Memory for database: SAMPLE utilh pckcacheh catcacheh bph (1) bph (S32K) bph (S16K) bph (S8K) 64.0K 1.9M 384.0K 4.2M 640.0K 384.0K 256.0K bph (S4K) shsorth lockh dbh other appctlh appctlh 192.0K 64.0K 640.0K 4.6M 256.0K 64.0K 64.0K appctlh appctlh appctlh appctlh appctlh appctlh appctlh 128.0K 64.0K 64.0K 64.0K 64.0K 64.0K 64.0K appctlh appctlh appctlh agsh 64.0K 64.0K 128.0K 41.1M SELECT * FROM sysibmadm.snapdb_memory_pool
db2mtrk -a or db2mtrk -p [db2ins91|db2ins91]/home/db2ins91>db2mtrk -p Tracking Memory on: Memory for agent 835702 other apph 128.0K 448.0K Memory for agent 176268 other apph 64.0K 192.0K Memory for agent 1081358 other apph 64.0K 192.0K
|