반응형

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

 

OS_NAME

OS_VERSION

OS_RELEASE

HOST_NAME

TOTAL_CPUS

CONFIGURED_CPUS

TOTAL_MEMORY

AIX

5

3

int-oag1

2

2

5120

 

위와 같이 간단하게 시스템 정보도 확인이 가능하다.

 

그리고 오라클 같은 경우 자신의 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

 

AGENT_ID

CLIENT_PID

DB_NAME

647

3344

SAMPLE

 

다음은 유용한 ADMIN view들에 대해서 쿼리수행 결과를 보여주도록 한다.

 

  

- db2owner DB 버전 확인

 

SELECT inst_name ,

       service_level version ,

       fixpack_num

FROM   sysibmadm.env_inst_info

 

INST_NAME

VERSION

FIXPACK_NUM

db2ins91

DB2 v9.1.0.4

4

 

 

- DB2 Product 정보 확인

 

SELECT * FROM sysibmadm.env_prod_info

 

INSTALLED_PROD

IS_LICENSED

PROD_RELEASE

ESE

1

9.1

 

 

- 테이블 및 인덱스의 물리적 사이즈 확인(파티션 된 테이블의 사이즈도 확인 가능)

  Size값은 KB 단위 이다.

 

SELECT *  FROM sysibmadm.admintabinfo

 

TABSCHEMA

TABNAME

DATA_OBJECT_L_SIZE

INDEX_OBJECT_L_SIZE

SYSIBM

SYSTABLES

240

128

SYSIBM

SYSCOLUMNS

1184

608

SYSIBM

SYSINDEXES

160

96

 

전체 테이블을 볼 때는 위처럼 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: 2010/01/11 at 17:07:05

 

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

 

POOL_ID

POOL_CUR_SIZE

POOL_CONFIG_SIZE

POOL_WATERMARK

UTILITY

65536

20512768

65536

PACKAGE_CACHE

1966080

5368709120

1966080

CAT_CACHE

393216

5368709120

393216

BP

4390912

5368709120

4390912

BP

655360

5368709120

655360

BP

393216

5368709120

393216

BP

262144

5368709120

262144

BP

196608

5368709120

196608

SHARED_SORT

65536

20512768

1507328

LOCK_MGR

655360

720896

655360

DATABASE

4849664

8978432

4849664

OTHER

262144

21168128

262144

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

131072

327680

131072

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

65536

327680

65536

APPL_CONTROL

131072

327680

131072

APP_GROUP

43057152

86179840

43057152

 

 

db2mtrk -a or db2mtrk -p

 

[db2ins91|db2ins91]/home/db2ins91>db2mtrk -p

Tracking Memory on: 2010/01/11 at 17:09:04

 

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

 

AGENT_ID

AGENT_PID

POOL_ID

POOL_CUR_SIZE

POOL_CONFIG_SIZE

905

835702

OTHER

131072

5368709120

905

835702

APPLICATION

458752

1245184

628

176268

OTHER

65536

5368709120

628

176268

APPLICATION

196608

1245184

626

1081358

OTHER

65536

5368709120

626

1081358

APPLICATION

196608

1245184

579

1016040

OTHER

65536

5368709120

579

1016040

APPLICATION

262144

1245184

324

1048702

OTHER

65536

5368709120

324

1048702

APPLICATION

262144

1245184

250

381090

OTHER

65536

5368709120

250

381090

APPLICATION

65536

1245184

246

933902

OTHER

65536

5368709120

246

933902

APPLICATION

65536

1245184

248

1114292

OTHER

65536

5368709120

248

1114292

APPLICATION

65536

1245184

243

979118

OTHER

65536

5368709120

243

979118

APPLICATION

262144

1245184

 

좀 더 많은 유용한 View들이 있지만... 일일이 다 나열하기는 좀 그렇고 DB2 정보센터를 이용하여 확인 및 사용해 보세요

반응형

+ Recent posts