DB2DBA: DB2 11.1新機能 - dsmtop

# dsmtopとは
DB2にはdb2topというツールが付属しており、ターミナル上で手軽にDB2のモニタリング行うことが出来ます。

DB2 11.1ではこのdb2topを大幅に機能強化したdsmtopというツールが新たに提供されるようになりました。これに伴い、db2topは非推奨扱いとなっています。

# 主な機能強化
- pureScale、BLU、WLMといったDB2の新しい機能のモニタリングビュー追加
- Windows版のサポート追加（一部機能制約あり）
- リモートDBのモニタリング機能追加
- ショートカットキーだけでなくメニューからの操作が可能になった
- 上下のページスクロールが可能になった
- スナップショットモニターを利用した実装からモニタリング表関数を利用した実装への変更によるオーバーヘッド低減


# スクリーンショット
dsmtopの機能やdb2topからの変更点を、スクリーンショットで簡単に紹介します。

せっかくなので、新たにサポートされたWindows版でやってみましたが、Linux/Unix版でもUIはほぼ同じです。


## 起動
ローカルDBに接続する場合、以下のコマンドで起動できます。Type 2 JDBCドライバで接続されるため、DBがカタログされている必要があります。

```
$ dsmtop -d <database_name>
```

リモートDBに接続する場合は、以下のようにオプションで接続先等を指定します。Type 4 JDBCドライバで接続されます。

```
$ dsmtop  -d <database_name>  -n <host_name>  -r <port_number>
```


ローカルDBにType 4 JDBCドライバで接続するにはリモートDBと同様にホスト名（localhost）を指定するか、`-j`オプションに`4`を指定します。

```
$ dsmtop -d <database_name> -n localhost
$ dsmtop -d <database_name> -j 4
```

Type 4接続の場合、以下の画面からユーザーIDやパスワード等を入力します。起動時のオプションで指定することもできます。

![dsmtop_connect.png](https://qiita-image-store.s3.amazonaws.com/0/150535/f82bdc1a-9595-d082-ee0a-f53fc05b7fe2.png)

## トップ画面（Overview）
見た目はずいぶん変わりましたが、db2topと同じようにDB全体の状態を示すメトリクスが並んでいます。

![dsmtop_overview.png](https://qiita-image-store.s3.amazonaws.com/0/150535/d7fc4219-a54b-9b94-9a46-1ffba24f435c.png)

## ショートカットキー
db2topと似ていますが、モニタリングビューへのショートカットは`Alt`キーが必要になるなど、一部変更されていますね。

![dsmtop_shortcuts.png](https://qiita-image-store.s3.amazonaws.com/0/150535/ad2f7dce-36af-69fb-02bc-731f293d7929.png)


## オプション
メニュー画面で設定できるようになり、分かりやすくなりました。

![dsmtop_options.png](https://qiita-image-store.s3.amazonaws.com/0/150535/80d75c17-2280-e3fc-7a5f-538c533a9e30.png)

## 各種モニタリングビュー
モニタリングビューもメニューから選択可能になっています。メニューは分類、階層化されています。

![dsmtop_view-0.png](https://qiita-image-store.s3.amazonaws.com/0/150535/47a64acc-fbb2-8900-7f7c-d3e40b445458.png)


pureScaleやHADRのモニタリング機能がメニューに用意されています。

![dsmtop_view-1.png](https://qiita-image-store.s3.amazonaws.com/0/150535/4a358d29-ac3e-8465-27c2-7c032a1136cb.png)
![dsmtop_view-2.png](https://qiita-image-store.s3.amazonaws.com/0/150535/a26be1a2-7ac6-ffcd-8407-62a4598cf84b.png)


テーブル、テーブルスペースといったオーバーヘッドの大きいビューはデフォルトでは無効化されていました。起動時のコマンドオプション`-x`もしくはオプションメニューの`Show expensive views`で有効化できます。

![dsmtop_view-3.png](https://qiita-image-store.s3.amazonaws.com/0/150535/ff351ee8-f7b9-1401-bd77-365cb7926ed8.png)

以下はDatabase memory poolsビューをスクロールしている様子です。`d`でスクロールダウン、`u`でスクロールアップで、他のビューでも利用できます。普通のツールであれば当たり前の機能なのですが、db2topでは左右の表示カラムのスクロールしか出来ませんでした（ターミナルに表示可能なだけの情報しか得られませんでした）。

![dsmtop_memory-1.png](https://qiita-image-store.s3.amazonaws.com/0/150535/919cec3a-dfcd-34b4-140d-9d2f98454dcc.png)
![dsmtop_memory-2.png](https://qiita-image-store.s3.amazonaws.com/0/150535/0f011d62-9758-9629-d677-3bf6d7371522.png)
![dsmtop_memory-3.png](https://qiita-image-store.s3.amazonaws.com/0/150535/2d068c8d-f459-0f8a-3529-a0e18c5d8cef.png)


# DB2 10.1 / 10.5での利用
dsmtopは[developerWorks](https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Text%20Based%20Monitoring%20for%20DB2%20LUW%20-%20dsmtop)で単体でも配布されており、ダウンロードして導入すればDB2 10.1 / 10.5でも利用可能です。

# 権限に関する注意
スナップショットモニターを利用した実装からモニタリング表関数を利用した実装に変更されたことに伴い、ツールを利用するため必要な権限が変わっています。

db2topおよびその内部で利用されるスナップショットモニター（GET SNAPSHOTコマンド）はSYSADM/SYSCTL/SYSMAINT/SYSMONの権限で実行できました。一方、dsmtop内で利用されるモニタリング表関数はDBADM/DATAACCESS/SQLADMの権限が必要になります。


# 参考資料
- IBM developerWorks
    - [Text Based Monitoring for DB2 LUW - dsmtop](https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Text%20Based%20Monitoring%20for%20DB2%20LUW%20-%20dsmtop)
- db2commerce.com
    - [Comparing dsmtop and db2top](http://db2commerce.com/2017/03/07/comparing-dsmtop-and-db2top/)