Db2: 組み込みルーチンや管理ビューで システムの環境情報を取得しよう

## 組み込みルーチンや管理ビューでシステムの環境情報を取得しよう



たとえば　[IBM Db2 Warehouse on Cloud](https://www.ibm.com/cloud/db2-warehouse-on-cloud)  のような　fully-managedのDb2 システムでは　管理者でも環境情報を取得することが難しいですよね。　そんな時は　Db2 ドキュメントの"[環境ルーチンおよびビュー](https://www.ibm.com/docs/ja/db2/11.5?topic=views-environment-routines )" を覗いてみませんか？　Db2管理者の"心くすぐる"組み込みルーチンや管理ビューが一覧でリストされています。

今回は　Db2 WoC (Warehouse on Cloud)のコンソールで環境情報を組み込みルーチンや管理ビューを使用して取得した例をご紹介します。　( 十分な権限を持ったユーザーで実行する必要があります。)

(参考) Db2 V11.5 環境ルーチンおよびビュー ..  https://www.ibm.com/docs/ja/db2/11.5?topic=views-environment-routines

-----------------------------------------------

本手順はIBM Db2 Warehouse on Cloud (Db2 ｖ11.5.5)で確認しています。
これらの技術を自身の環境に適用する際には、自己の責任において十分な検証と確認を実施いただくことをお奨めいたします。

-----------------------------------------------

### 例1 ENV_SYS_INFO 管理ビュー - システムに関する情報の検索

システムに関する情報を取得するには `ENV_SYS_INFO` が使えます。

```SQL
SELECT
OS_FULL_VERSION		-- オペレーティング・システム・フルバージョン
, TOTAL_CPUS		-- このホストでのプロセッサーの数。
, CONFIGURED_CPUS	-- システム上の構成済み物理 CPU の数。
, TOTAL_MEMORY		--  システム上のメモリーの合計量 (MB 単位)。
from SYSIBMADM.ENV_SYS_INFO;
```

(参考)　ENV_SYS_INFO 管理ビュー - システムに関する情報の検索　https://www.ibm.com/docs/ja/db2/11.5?topic=views-env-sys-info-system-information

Db2 WoC (Warehouse on Cloud)のコンソールの"SQLの実行"を開いて 上↑のSQLを入力し、"すべて実行"をClickします。

![image-20210707105552768.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/ceee0fb6-88d2-71e2-8e97-83373f82240f.png)




"読み込まれたすべてのレコードを表示"を選択すると　状況が取得できています。

![ENV_SYS_INFO-OUTPUT_20210707.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/87bef62a-d99d-9b69-ded1-720df56108f8.jpeg)




### 例2 ENV_INST_INFO 管理ビュー - 現在のインスタンスに関する情報の検索

`ENV_INST_INFO`を使用すると　オンプレなどで使用する `db2level `コマンドで表示される情報などが取得できます。

```SQL
SELECT 
INST_NAME			-- 現在のインスタンスの名前。
, NUM_DBPARTITIONS	-- データベース・パーティションの数。
, SERVICE_LEVEL		-- db2level コマンドによって返されるサービス・レベル。
, BLD_LEVEL			-- db2level コマンドによって戻される、ビルド・レベル。
, PTF				-- db2level コマンドによって戻される、プログラム一時修正 (PTF) ID。
FROM SYSIBMADM.ENV_INST_INFO;
```

(参考)　ENV_INST_INFO 管理ビュー - 現在のインスタンスに関する情報の検索　https://www.ibm.com/docs/ja/db2/11.5?topic=views-env-inst-info-current-instance-information



例１と同様に　Db2 WoC (Warehouse on Cloud)のコンソールの"SQLの実行"を開いて 上↑のSQLを入力し、"すべて実行"をClickします。"読み込まれたすべてのレコードを表示"を選択すると次のような情報が得られます。

| INST_NAME | NUM_DBPARTITIONS | SERVICE_LEVEL | BLD_LEVEL    | PTF                     |
| :-------- | :--------------- | :------------ | :----------- | :---------------------- |
| db2inst1  | 8                | DB2 v11.5.5.0 | special_6558 | DYN2103170707AMD64_6558 |



### 例3 ENV_GET_REG_VARIABLES 表関数 - 使用中のデータベース・レジストリー設定の取得

`ENV_GET_REG_VARIABLES `を使用すると　オンプレなどで使用する `db2set`コマンドで参照できる情報が取得できます。

```SQL
select MEMBER
, REG_VAR_NAME			-- データベース・レジストリー変数の名前。
, REG_VAR_VALUE			-- メモリー内の現行設定値。
, REG_VAR_ON_DISK_VALUE	-- ディスク上の現行設定値。
, LEVEL					-- I = インスタンス / G = グローバル / N = データベース・パーティション / E = 環境
from table(ENV_GET_REG_VARIABLES(-1, 0)) ; 	
	-- ENV_GET_REG_VARIABLES
	--  第１パラメータ memberを指定 -1 : 現行のデータベース・メンバー
	--  第２パラメータ すべてのレジストリー変数についての情報を戻すかどうかを指定  0: 現在設定されている変数のみを表示	
```

(参考)　ENV_GET_REG_VARIABLES 表関数 - 使用中のデータベース・レジストリー設定の取得  https://www.ibm.com/docs/ja/db2/11.5?topic=erv-env-get-reg-variables-database-registry-settings-in-use



例１と同様に　Db2 WoC (Warehouse on Cloud)のコンソールの"SQLの実行"を開いて 上↑のSQLを入力し、"すべて実行"をClickします。"読み込まれたすべてのレコードを表示"を選択すると次のような情報が得られます。

| MEMBER   | REG_VAR_NAME | REG_VAR_VALUE  | REG_VAR_ON_DISK_VALUE | LEVEL |
| :------- | :----------- | :------------- | :-------------------- | :---- |
| 0        | DB2AUTOSTART | NO             | NO                    | I     |
| 0        | DB2COMM      | TCPIP,SSL      | TCPIP,SSL             | I     |
| 0        | DB2INSTDEF   | db2inst1       | db2inst1              | E     |
| 0        | DB2SYSTEM    | dashmpp-head-0 | dashmpp-head-0        | G     |
| 0        | DB2_ANTIJOIN | EXTEND         | EXTEND                | I     |
| 以下省略 |              |                |                       |       |





## まとめ

- 環境ルーチンやビューで情報をえるためには十分な権限を持ったユーザーで実行する必要があります。

- [IBM Db2 Warehouse on Cloud](https://www.ibm.com/cloud/db2-warehouse-on-cloud)  のような　fully-managedのDb2 システムでも　環境ルーチンやビューを使用して環境情報を取得することができます。

- Db2 ドキュメントの"[環境ルーチンおよびビュー](https://www.ibm.com/docs/ja/db2/11.5?topic=views-environment-routines )" には　Db2管理者の"心くすぐる"組み込みルーチンや管理ビューが一覧でリストされています。