...

DB2の稼動監視 DB2 UDB (PC&Unix) 運用管理シリーズ

by user

on
Category: Documents
601

views

Report

Comments

Transcript

DB2の稼動監視 DB2 UDB (PC&Unix) 運用管理シリーズ
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2の稼動監視
お断り:当資料は、DB2 UDB V7.1(UNIX,PC) をベースに作成されています。
(一部、Fixpackに含まれるV7.2の機能についてもふれています。)
<第1.00版>2001年4月
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
目次:DB2の稼動監視
1.DB2運用時の監視対象候補
2.プロセス監視
3.ログ
4.管理プログラム
5.監査機能
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 1-2 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
1.DB2運用時の監視対象候補
DB2稼動監視
リソース監視
セキュリティ監視
・
・
・
etc
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 1.DB2運用時の監視対象候補
システムを運用する場合、一般的にシステムが正常運用されるために何かしらの監視を行います。
監視について分類すると
システムの正常稼動(異常発生)監視
リソースの監視
不正アクセスの監視(セキュリティー)
などが考えられます。
システムの構成要素の中にDB2が含まれている場合は、DB2に関しても運用監視が必要となってきます。
DB2では、どのような監視機能が提供されているのでしょうか?
正常稼動(異常発生)の監視
異常時にログを生成する機能を備えています。
リソースの監視
アプリケーション毎のリソース利用状況をモニターし、事前に設定した条件でアプリケーションのリソース利用
を変更する機能を備えています。
システム表などから表スペースの利用率を把握する事が可能です。
不正アクセスの監視(セキュリティー)
UDBに対して要求された処理のログを記録する機能を備えています。
今回は、DB2の運用監視で利用できそうな機能のうち
DB2のプロセス
DB2が生成するログ
ガバナー
Audit
について説明します。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 3-4 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
2.プロセス監視
DB2が正常稼動しているかどうかを確認する手段の一つ
データベース接続処理による確認より、システム的に負荷が低い
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 2.プロセス監視
DB2のプロセス稼動状況を定期的に確認するのは、DB2が正常稼動しているかどうかを確認する手段の一つとなります。
また、通常はデータベース接続処理による確認より、システムへの負荷が低くなります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 5-6 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2のプロセス構成
インスタンス毎
db2gds
クライアント毎
データベース毎
Agent Pool
db2wdog
db2pfchr
db2sysc
db2resyn
ユーザー・
プロセス
ローカル・
クライアント接続
db2agent
db2pclnr
db2agentp
ユーザー・
APPC・
プロセス
クライアント接続
db2snacm
ユーザー・
プロセス
db2tcpcm
TCP/IP・
クライアント接続
db2agentp
db2ipccm
db2agentp
db2agent
db2loggr
db2agentp
db2agentp
db2dlock
db2agent
db2agentp
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DB2のプロセス構成
UNIX版DB2 UDBでは、以下のプロセスが稼動します。
Windows版やOS/2版のDB2ではプロセスではなくスレッドになります。
また、マルチスレッド・モデルを使用してインプリメントされるため、以下のプロセスを識別することはできません。
db2sysc (System Controller)
インスタンスの起動と停止を行います。DB2が正常に稼動しているときは必ずこのプロセスが存在しています。
db2wdog (Watch Dog)
DB2の全てのプロセスを管理します。
db2gds (Generic Daemon Spawner)
DB2のデーモンを起動します。
db2resyn (Resync Agent)
インダウトトランザクションのリカバリを行います。
db2ipccm IPC (Communication Manager)
ローカルクライアントからの接続要求を受け付けます。
db2tcpcm (TCP/IP Communications Manager)
TCP/IPクライアントからの接続要求を受け付けます。DB2COMM=TCPIPの設定がされている場合に起動します。
db2snacm (SNA Communications Manager)
APPCを使用したクライアントからの接続要求を受け付けます。DB2COMM=APPCの設定がされている場合に起動します。
db2agent (db2 Agent)
ユーザーアプリケーションに対するインタフェース(コーディネーターエージェント)となります。
db2agentp (db2 Sub Agent)
サブエージェント(SMP環境)です。
db2dlock (Database Deadlock Detector)
デッドロック状態の監視やリカバリを行います。
db2loggr (Database Logger)
ログ情報をディスクに書き出します。
db2pclnr (Page Cleaner)
バッファーページをディスクに書き出します。
db2pfchr (I/O Prefecher)
I/Oプリフェッチを行います。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 7-8 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
監視すべきプロセスは?
DB2のプロセスを起動するタイミングでグルーピングすると
インスタンス単位
データベース単位
クライアント単位
監視する場合の単位は?
インスタンス単位
データベース単位
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 監視すべきプロセスは?
監視すべきプロセスを考える場合、DB2の稼動状況によって起動するプロセスがどのように変化するかを理解した上で
監視すべきプロセスを検討するべきです。
DB2の稼動状況としては、以下の様な状況によって起動するプロセスが変化します。
インスタンスのみ起動状態
データベースがアクティブとなっている
クライアントからのデータベース接続が存在する
では、監視する立場から考えると、以下のようになります。
インスタンスのみ起動状態
→db2start/db2stopコマンドの実行によって変化する
データベースがアクティブとなっている
→データベースへの接続が存在するか
or
ACTIVATE/DEACTIVATE DATABASEコマンドの実行
クライアントからのデータベース接続が存在する
→アプリケーションが起動している
この事から考えると、以下の順序でプロセス監視が複雑になる事になります。
インスタンスのみ起動状態
データベースがアクティブとなっている
クライアントからのデータベース接続が存在する
そのため、プロセスの監視はシステム要件に合わせて考える必要があります。
DB2は、マルチスレッド・モデルを使用してインプリメントされるため、WindowsおよびOS/2オペレーティング・システ
ム上でこれらのプロセスを識別することはできません。
そのため、プロセスを監視する場合は、db2sysc.exeを監視する事になります。
なお、Intel系システムではUNIX系システムで起動されるプロセスのうち、db2wdog,db2gdsに相当するプロセスがありま
せん。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 9-10 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
プロセスの監視コマンド例
AIXの場合
$ more udb_process.txt
db2sysc
db2gds
db2resyn
db2ipccm
db2tcpcm
$ ps -ef | grep -f udb_process.txt | grep udbv7 | grep -v ps | grep -v grep
udbv7 49438 50986 0 18:48:54
- 0:00 db2tcpcm
udbv7 50986 68654 0 18:48:54
- 0:00 db2sysc
udbv7 52024 72066 0 18:48:55
- 0:00 db2resyn
udbv7 57846 50986 0 18:48:54
- 0:00 db2ipccm
udbv7 72066 50986 0 18:48:54
- 0:00 db2gds
Solarisの場合
tests% /usr/ucb/ps axwwu | grep db2sysc | grep -v grep
dasv7
353 0.0 1.840624 2200 ?
S 2月 16 0:00 db2sysc
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: プロセスの監視コマンド例
AIXの例では、テキストファイルにDB2の監視対象プロセスを保存し、grepの-fオプションを利用して監視していま
す。
$ more udb_process.txt
db2sysc
db2gds
db2resyn
db2ipccm
db2tcpcm
$ ps -ef | grep -f udb_process.txt | grep udbv7 | grep -v ps | grep -v grep
udbv7 49438 50986 0 18:48:54
- 0:00 db2tcpcm
udbv7 50986 68654 0 18:48:54
- 0:00 db2sysc
udbv7 52024 72066 0 18:48:55
- 0:00 db2resyn
udbv7 57846 50986 0 18:48:54
- 0:00 db2ipccm
udbv7 72066 50986 0 18:48:54
- 0:00 db2gds
Solarisの例では、通常のpsコマンドではなく、バークレイのpsコマンドを利用しています。
通常のpsコマンドを利用した場合、DB2の管理プロセスはすべてdb2syscとなってしまうため、バークレイのpsコマ
ンドの利用を推奨します。
tests% /usr/ucb/ps axwwu | grep db2sysc | grep -v grep
dasv7
353 0.0 1.840624 2200 ?
S
2月 16 0:00 db2sysc
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 11-12 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
参考情報
プロセスに関しては、以下のマニュアルも記述があります
「DB2問題判別の手引き」
-「第14章 プロセス・モデル」
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ブランク・ページです
( 13-14 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
3.ログ
初期障害データ捕そく機能(FirstFailureDataCapture)
エラー発生時に、そのエラーに関してDB2によって捕そくされた診断情報
生成される情報の種類
db2diag.log
db2alert.log
ダンプ・ファイル
トラップ・ファイル
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 3.ログ
DB2には、エラー発生時に初期障害データを補そくする機能(First Failure Data Capture)があります。
FFDCは、深刻なデータベース障害の発生時に、DB2プロダクト中の検出コンポーネントによってDB2エラーログファイル
に情報を出力し、出力されたエラーログを用いることで、データベース管理者は問題判別・修復及び、DB2 service
analystに情報を提示することが出来ます。
出力されるファイルには以下のものがあります。
db2diag.log
最も重要なエラーログファイルです。エラーが発生するとこのエラーログファイルの最後尾に情報が付加されま
す。
このファイルは、ASCIIコードで出力されます。
db2alert.log
アラートが必要なエラーの場合、db2alert.logファイル及びオペレーティング・システムまたはネイティブ・ログ
機能にログが追加されます。
このファイルは、ASCIIコードで出力されます。
ダンプ・ファイル
エラーの状態によっては、失敗したプロセスIDの名前が付いた外部2進ダンプ・ファイルに追加情報が記録されま
す。
このファイルは、DB2カスタマー・サポート用のファイルであり、バイナリ-フォーマットで出力されます。
トラップ・ファイル
データベース管理プログラムは、トラップやセグメンテーション違反、例外などにより処理が続行できない時に
生成されるファイルです。
このファイルには、問題発生前に実行された最後のステップの関数の流れが含まれています。
このファイルは、DB2カスタマー・サポート用のファイルであり、バイナリ-フォーマットで出力されます。
全般的にSQLCAのように理解しやすい情報はDB2DIAG.LOGファイルに出力されます。一方、追加情報(コントロールブ
ロックを含む)はバイナリ・ダンプ・ファイルに出力されます。
このバイナリ・ダンプ・ファイルはIBM 技術員が調査するためだけに使用されます。
エラーメッセージと共に追加情報が提供された場合、その情報はDB2DIAG.LOGに出力されるか、もしくは次のようなファ
イル名で、別途バイナリ・ダンプ・ファイル(depending on the type of data)に出力されます。
(C)日本IBMシステムズ・エンジニアリング(株)
データシステム部
PID.###(PID = プロセスID).
( 15-16 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
FFDCの構成パラメータ
DIAGLEVEL
受け取る診断情報のレベルを指定します
0
1
2
3
4
-
診断データを取り込まない
重大エラーのみ
すべてのエラー(重大エラーおよび非重大エラー)
すべてのエラー、警告 (デフォルト値)
すべてのエラー、警告、通知メッセージ、その他の内部診断情報
NOTIFYLEVEL
書き込まれるエラーのタイプを指定します
0
1
2
3
4
-
診断データを取り込まない
重大エラーのみ
すべてのエラー(重大エラーおよび非重大エラー) (デフォルト値)
すべてのエラー、警告
すべてのエラー、警告、通知メッセージ、その他の内部診断情報
DIAGPATH
FFDC情報のファイル出力場所を設定します
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: FFDCの構成パラメータ
FFDC情報は、以下の3つのデータベース・マネージャー構成パラメーターによって情報量および出力場所が決まります。
DIAGLEVEL
NOTIFYLEVEL
DIAGPATH
これらのパラメーターを変更するには、UPDATE DATABASE MANAGER CONFIGURATION コマンドを使用します。
パラメーターの変更を反映するためには、データベースの停止/再起動が必要となります。
DIAGLEVELは、受け取る診断情報のレベルを指定します。
詳細な診断情報が必要な場合はDIAGLEVEL=4とします。但し、本番環境では問題原因を徹底的に追求する必要がない
場合はお勧めしません。
DAIGLEVELを変更する場合は以下のコマンドを実行します。
db2 "update database manager configuration using diaglevel n"
NOTIFYLEVELは、書き込まれるエラーのタイプを指定します。
DIAGPATHはファイルが出力される場所を指定します。
デフォルトで以下の場所に出力されます。
UNIX: $HOME/sqllib/db2dump
Intel: [%DB2INSTPROF]\%DB2INSTANCE
$HOME にはインスタンス所有者のホームディレクトリが入ります。また %DB2INSTPROF (オプション)には、DB2
Serverとインスタンスについてのレジストリ値が入ります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 17-18 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DIAGLEVEL設定の考慮点
EE環境においては、可能な限りDIAGLEVELを4に設定
EEE環境においては、DIAGLEVELを3に設定
4では情報があまりにも詳細なため、問題がない時には3
両方の環境で、下記の時にはDIAGLEVELを4に設定
最初の導入・構成時
構成の変更をした場合
エラーが起こった場合
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DIAGLEVEL設定の考慮点
DIAGLEVELlを4にした場合は、それより低いレベルを設定した場合よりも多くの情報が得られます。
そのため DIAGLEVELを4にした場合、下記の時に少しパフォーマンスが低下することがあります。
エラーが起こった場合
db2start
最初にデータベースに接続した場合
EEE環境でDIAGPATHをNFS上に設定した場合、パフォーマンスが低下しますので注意が必要です。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 19-20 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2DIAG.LOG
問題が起こった時点で解析に必要なデータをダンプ
何のエラーであるか
エラーがどこで発生したのか
エラーが発生したパーティション
情報は読みやすいフォーマットで書かれている
情報はファイル追加出力される
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DB2DIAG.LOG
DB2DIAG.LOGに書かれたデータは問題に関連があり、それらの中から問題を解決するために必要なデータを慎重に選択し
なければなりません。
データは、エラーが起こった時にDB2DIAG.LOGに書き込まれます。データの種類と量はそれぞれのDB2の構成パラメータ
によって決定されます。
エラーが起こった時にデータが集められるため、エラーを再現する必要がありません。
DB2DIAG.LOGに書かれた情報は管理者にむけて読みやすい形式で書かれています。
最新のデータは常にDB2DIAG.LOGファイルの末尾に追加されますが、DB2によって削除される事はないためため、ファイ
ルは大きくなり続けます。大きくなりすぎた場合、必要ならばファイルのバックアップを取り、ファイルを削除して下
さい。新しいDB2DIAG.LOGファイルは、次にシステムがファイルを必要とするときに自動的に作成されます。
以下の様な情報が記録されます。
日時情報
インスタンス名
パーティション番号(EEE以外は0)
プロセスID
(OS/2、Windows32ビット・オペレーティング・システムではスレッドIDも)
アプリケーションID
コンポーネント識別子
関数識別子
ユニーク・エラー識別子(プローブID)
データベース名
エラーに関する記述かつ/またはエラーコード
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 21-22 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2DIAG.LOGの保管場所
DB2DIAG.LOG ファイルの場所
データベースマネージャー構成パラメータによって設定
OS/2、 NT、 95での初期値は\SQLLIB\Instance
UNIXでの初期値は$HOME/sqllib/db2dump
EEE環境の場合
区分化されたデータベース環境では、sqllibディレクトリはすべてのシステム
でマウント/共有している
そのため、デフォルトではDB2DIAG.LOGは全ノードで共有のファイルである
パーティション番号があるので、エントリーの判別は可能
パフォーマンスは低下する可能性がある
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DB2DIAG.LOGの保管場所
EEE環境の場合には、DBM ConfigのDIAGPATHを変更してDB2DIAG.LOGの保管場所をデフォルトの設定からローカルドライ
ブ/パスを指定するように設定を変更して下さい。
ただし、DIAGPATHはDBM構成パラメータであるため全てのパーティションでパスは一つだけ存在します。
DB2DIAG.LOGを共有する場合
パフォーマンスが問題となる
DB2DIAG.LOGをローカルに作成する場合
それぞれが別個になっているので、読みやすい
全パーティションの情報を集めるのが困難
DIAGPATHの変更は、UPDATE DATABASE MANAGER CONFIGURATIONコマンドを使用します。
db2 "update database manager configuration using diagpath x:\tmp\errors"
DIAGPATHの設定を省略時値にリセットするためには、以下のように入力します。
db2 "update database manager configuration using diagpath NULL"
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 23-24 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2DIAG.LOGの出力例
エラー発生日時
インスタンス名
2001-04-09-18.59.02.024573
PID:22448(db2dari (19116))
Instance:db2v7
Appid:
コンポーネント名
関数名
aps_general_service
sqlagf_putstr
ノード番号
Node:000
Probe:1
エラーコードおよび説明
DIA9999E An internal error occurred. Report the following error code :
"error
-6646 returned from sqlofwrt()".
エラーに関する追加情報ファイルのファイル名
Dump File:/home/db2v7/sqllib/db2dump/22448.000 Data:err_lg
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DB2DIAG.LOGの出力例
これは、DB2DIAG.LOGに出力された情報の例です。
注目するのは、以下の点です。
エラー発生日時
インスタンス名、ノード名
関数名
診断メッセージ
追加情報としてダンプファイルが出力されている場合は、そのファイル
エラーコードおよび説明で戻される数値については、マニュアル「問題判別の手引き」-「付録A.DB2内部コード」をご参照
ください。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 25-26 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2ALERT.LOGの設定
UNIX環境では、アラートログはSYSLOGファイルに出力されます
ユーザーはSYSLOGを自分で設定する必要がある
SYSLOGについては、情報の場所と種類を/etc/syslog.confで設定する
Windows NTでは、アラートログはEvent Logに書かれる
Windows NTのEvent Logを調べるにはEvent Viewerを使用する
OS/2環境では自動的に設定
OS/2環境ではログを調べるためのグラフィックツールを取得するためにsyslogとタイ
プする
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DB2ALERT.LOGの設定
UNIXでは、/etc/syslog.confで設定します。SYSLOGはASCIIファイルです。
Windows NTでは、SYSLOGの情報はEvent Logに書かれます。情報を調査するにはEvent Viewerを使用してください。
SYSLOGはOS/2環境では自動的に設定されます。グラフィックな環境においてログを調査する場合は、コマンドプロンプ
トよりsyslogをタイプしてください。
DB2DIAG.LOGに頼りがちですが、SYSLOGもDB2DIAG.LOGと同様の有益な情報を持っていることがあります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 27-28 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2ALERT.LOG
リターンコードが有効なSQLCODEでない場合は、SQLZRC.Hを確認す
る
各エントリーの中身
時間・日付情報
プロセスID
コンポーネント
エラーを起こした関数
エラーの記述およびリターンコード
FFDCを提供
Provides First Failure Data Capture (FFDC).
エラー時に情報を収集
エラーを再現する必要はない
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: DB2ALERT.LOG
DB2DIAG.LOGと同様に、まずはじめにリターンコードを10進数に変換してください。有効なSQLCODEの場合は、SQLCODE
を調べてください。有効なSQLCODEでない場合は、マニュアルまたはSQLZRC.Hでリターンコードを調べて、エラーを調査
してください。
エントリーは以下の情報を提供します
エラーの時間・日付
エラーを起こしたプロセス
エラーを起こしたコンポーネントと関数
リターンコード
SYSLOGは失敗の情報のポイントを提供しています。情報はエラー時に収集するため、デバッグに必要な情報を得るため
に問題を再現する必要はありません。
SYSLOGの中に記録されているキーワードSQLCAの後にSQLCODEを見つけることが出来ます。
HEXから10進数に変換してSQLCODEを調べて下さい。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 29-30 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
ログに関する注意点
DIAGLEVELの設定は、注意深く行ってください
設定を誤ると障害対応が出来ない、障害を招く可能性があります。
ログが出ない
ログが大量に出力される
ログファイルは定期的に整理を行ってください
DB2は、ログ・ファイルを生成しますが削除・整理は行いません
障害調査終了後に、不要なファイルを整理するようにしてください
障害発生時には、ログの内容を確認してください。
ログの内容から障害状況を把握出来る場合もあります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
参考情報
ログに関しては、
「DB2 UDB V7.1(PC&Unix)内部構造と問題判別W/S」で内容などについて詳細な説明が行
われています。
以下のマニュアルに記述があります
「問題判別の手引き」
-「第15章 ログ情報」
-「第17章 UNIXベースのシステム用の診断ツール」
-「第18章 OS/2用の診断ツール」
-「第19章 Windows32ビット オペレーティング・システム用の診断ツール」
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 31-32 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
4.管理プログラム
アプリケーション毎のリソース利用状況をモニターする
アプリケーションのリソース利用状況が事前に設定した制限を越
えた場合、次の事を行える
アプリケーションの強制終了
アプリケーションの優先順位変更
行われたアクションは、ログファイルに記録される
設定可能なリソースの制限値
CPU時間
ロック保持数
回答行数
読み込み行数
経過時間
アイドル時間
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 4.管理プログラム
管理プログラムはデータベースで実行されているアプリケーションのリソース利用状況をモニターします。
アプリケーションのリソース利用状況が事前に設定した制限を越えた場合、事前に定義された内容に従い、アプリケー
ションに対してアクションを行えます。
アプリケーションの強制終了
アプリケーションの優先順位変更
管理プログラムが行ったアクションは、ログファイルに記録されます。
ログファイルは、$DB2INSTANCE/sqllib/logディレクトリーの下に保管されます。
ログファイル名は、管理プログラム起動時に指定します。
設定可能なリソースの制限値は、以下の6項目です。
CPU時間
ロック保持数
回答行数
読み込み行数
経過時間
アイドル時間
また、管理プログラムデーモンは以下の順に処理を行います。
管理プログラム構成ファイル変更有無のチェック、及び変更ありの場合は再読み込み
アプリケーションプログラムの統計情報採取(SnapShot実行)
統計情報と管理プログラム構成ファイルの突き合わせ
規則を満たしたアプリケーションに対するアクションの実行及びログへの出力
管理プログラム構成ファイルで指定されたintervalの間、スリープする
なお、この機能のコマンドを利用するためには、SYSADMまたはSYSCTRL権限が必要です。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 33-34 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
管理プログラム利用手順
管理プログラムの利用手順
Ⅰ.管理プログラム構成ファイル作成
Ⅱ.管理プログラム開始 (db2gov start)
Ⅲ.管理プログラム稼動中
Ⅲ-Ⅰ.管理プログラム・ログ照会 (db2govlg) ※
Ⅲ-Ⅱ.管理プログラム構成ファイル編集 ※
Ⅳ.管理プログラム停止 (db2gov stop)
※.管理プログラムが停止した状態でも
「Ⅲ-Ⅰ.管理プログラム・ログ照会 」、「Ⅲ-Ⅱ.管理プログラム構成ファイル編集」の操作は可
能です。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 管理プログラム利用手順
管理プログラムを利用する際には以下のような手順となります。
まずは、管理プログラム構成ファイルに管理プログラムが参照する規則の情報を定義する必要があります。
管理プログラム構成ファイルの定義ができた時点で管理プログラムを開始する事が出来ます。
管理プログラムは、一定間隔でデータベースのスナップショット情報を取得し、管理プログラム構成ファイルで定義し
た規則に当てはまるアプリケーションが無いかどうかを監視します。
もし管理プログラム構成ファイルで定義した規則に当てはまるアプリケーションがあった場合は、管理プログラム構成
ファイルに定義された情報に従いアプリケーションに対するアクションを実行します。
また、
管理プログラム稼働中に管理プログラム構成ファイル編集を変更して規則を変更する事と
管理プログラムの状況に関わらず、管理プログラムが行ったアクションのログを参照する事が出来ます。
管理を止める場合は管理プログラムを停止します。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 35-36 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Ⅰ.管理プログラム構成ファイル作成
データベースで稼動するアプリケーションを監視する管理プログ
ラムの監視規則及び処置を記述するファイルです。
監視するデータベース毎に管理プログラム構成ファイルを作成す
る必要があります。
管理プログラム構成ファイルの省略時の場所は、
AIX:$DB2INSTANCE/sqllib
Windows:$DB2PATH/DB2
ディレクトリーの下です。
管理プログラム構成ファイルのパーミッションは、出来るだけイ
ンスタンス所有者のみが読み/書き可能となるようにしてください
管理プログラムの機能を利用してFORCE APPLICATIONする事が出来るので注意が必要で
す。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅰ.管理プログラム構成ファイル作成
管理プログラム構成ファイルとは、データベースで稼動するアプリケーションを監視する管理プログラムの監視規則及
び処置を記述するファイルです。
監視するデータベース毎に管理プログラム構成ファイルを作成する必要があります。
管理プログラム構成ファイルの省略時の場所は、
AIX:$DB2INSTANCE/sqllib
Windows:$DB2PATH/DB2
ディレクトリーの下です。
管理プログラム構成ファイルのファイル名は、各システム毎に自由に設定できます。
管理プログラム起動時のパラメータとして、利用する管理プログラム構成ファイルを指定します。
そのため、事前に複数の管理プログラム構成ファイルを準備しておき、管理プログラム起動時に状況に応じて管理プロ
グラム構成ファイルを指定する事が出来ます。
管理プログラムのアクションとしてアプリケーションをForceする機能があります。
そのため、管理プログラム構成ファイルを不正に変更されないように、管理プログラム構成ファイルのパーミッション
は、出来るだけインスタンス所有者のみが読み/書き可能となるようにしてください。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 37-38 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Ⅰ.管理プログラム構成ファイル作成
管理プログラム構成ファイルの構造
{コメント}
interval nnn ; dbname DB_NAME ; account nnn;
desc {コメント} "[規則]" "[setlimit]" "[action]"
desc {コメント} "[規則]" "[setlimit]" "[action]"
desc {コメント} "[規則]" "[setlimit]" "[action]"
・
・
・
②
③
④
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅰ.管理プログラム構成ファイル作成
①
管理プログラム構成ファイルの最初には、
モニターするデータベースと、
デーモンが活動のループを一回り処理した後ウェイクアップするまでの時間間隔
を記述します。
これらの規則は、それぞれファイルに 1回しか指定できません。
項目は以下の通りです。
dbname
モニター対象となるデータベースの名前または別名。
account nnn
各接続ごとの CPU 使用率統計を含む会計レコードが、指定された数の分ごとに書き出されます。
なお、:このオプションは Windows または OS/2 上では使用されません。
interval
デーモンがウェイクアップする時間間隔(秒単位)。デフォルト値は120 秒です。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 39-40 )
①
;
;
;
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: Ⅰ.管理プログラム構成ファイル作成
②
以下にあげる規則文節を組み合わせて、1つの規則を作ります。
文節が指定するのは、規則が適用される時間帯、使用できるリソースの制限、および任意指定ですが、特定のユーザー
またはアプリケーション、規則に指定した制限を超えた場合に管理プログラムが行う処置です。文節は1つの規則には1
回ずつしか指定できませんが、複数の規則に指定することができます。文節は、以下に説明する順序で指定する必要が
あります。 以下の説明では、[ ]は任意指定の文節を示しています。
[desc]
規則に関するテキスト記述を指定します。記述は、単一引用符か二重引用符のいずれかで囲む必要があります。
[time]
規則が適用される時間帯を指定します。
時間帯は、time hh:mm hh:mm(たとえば、time 8:00 18:00)という形式で指定する必要があります。
この文節が指定されない場合は、規則は全日(24時間)有効になります。
[authid]
アプリケーションを実行する許可ID(authid)を1つまたは複数指定します。
複数のauthidを指定する場合は、たとえばauthid gene, michael, jamesのように、コンマ(,)で区切る必要があり
ます。
この文節が規則になかった場合には、規則はすべてのauthidに適用されます。
[applname]
データベースへの接続を行う実行可能アプリケーション(または、オブジェクト・ファイル)の名前を指定します。
複数のアプリケーション名を指定する場合は、たとえばapplname db2bp, batch, geneprogのように、コンマ(,)で
区切る必要があります。この文節が規則になかった場合には、規則はすべてのアプリケーション名に適用されま
す。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅰ.管理プログラム構成ファイル作成
③
setlimit
管理プログラムが検査する制限を1つまたは複数指定します。制限値は、-1か、さもなければ0より大きい値にしな
ければなりません(たとえば、cpu -1 locks 1000 rowssel 10000)。制限 (cpu、 locks、 rowsread、uowtime)は、
最低でも1つは指定する必要があり、規則によって指定されていない制限は、その特定の規則によって制限されませ
ん。管理プログラムが検査できるのは、以下に示す制限です。
cpu nnn
アプリケーションが使用可能なCPUの秒数を指定します。-1 を指定すると、管理プログラムはアプリケーション
の CPU 使用の制限は行いません。
なお、:このオプションは Windows NT または OS/2 上では使用されません。
locks nnn
アプリケーションが保持できるロック数を指定します。-1 を指定すると、管理プログラムはアプリケーション
が保持するロック数の制限は行いません。
rowssel nnn
アプリケーションに戻される行数を指定します。この値は、調整プログラム・ノードでは非ゼロとなります。
-1を指定すると、管理プログラムは選択できる行数の制限は行いません。
uowtime nnn
作業単位(unit of work)(UOW) が最初に活動状態になった時刻から経過可能な秒数を指定します。 -1を指定す
ると、経過時間は制限されません。
idle nnn
接続において、指定された処置が行われる前に許されるアイドル状態の秒数を指定します。-1を指定すると、接
続のアイドル時間は制限されません。
rowsread nnn
アプリケーションが選択できる行数を指定します。-1を指定すると、アプリケーションが選択できる行数は制限
されません。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 41-42 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: Ⅰ.管理プログラム構成ファイル作成
④
[action]
指定された制限の1つまたは複数を超えた場合に取る処置を指定します。次のように処置を指定することができま
す。
priority nnnアプリケーションのために処理を行っているエージェントの優先順位の変更を指定します。 有効な値
は-20 ~ +20 です。
このパラメーターを有効に使用するには、以下に注意してください。
UNIX ベースのプラットフォーム上では、 agentpri データベース・マネージャー・パラメーターを省略時値に設定
する必要があります。 省略時値にしないと、このパラメーターが priority 文節を指定変更してしまいます。
OS/2 上および Windows プラットフォームでは、 agentpri データベース・マネージャー・パラメーターと
priority の処置とを一緒に使用することができます。
force
アプリケーションにサービスを提供しているエージェントの強制停止を指定します。
(調整エージェントを終了する場合は、FORCE APPLICATION を出します。)
schedule [class]
スケジューリングによって、 すべてのアプリケーションにおける公平性を確保しながら同時に平均応答時間を
最小化するという目的に向けて、 アプリケーション上で処理を行っているエージェントの優先順位の調整が行
われます。
なお、複数の規則が1つのアプリケーションに適用される場合には、構成ファイルの終わりに最も近い位置に置かれた規
則がアプリケーションに適用されます。
例外なのは、規則の中の文節に-1が指定された場合です。
この場合には、後続する規則の文節の値は、それより前に同じ 文節に指定された値のみを指定変更します。
このとき、前に置かれた規則の他の文節は、有効なままになります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅰ.管理プログラム構成ファイル作成
configfileの記入例
{ Wake up once a second, the database name is ibmsampl
do accounting every 30 minutes. }
interval 1; dbname SAMPLE; account 30;
desc "CPU restrictions apply 24 hours a day to everyone"
setlimit idle 120 rowssel 10000 rowsread -1 action force;
管理デーモンが1秒毎に起動します
モニター対象のDB名はSAMPLEです
CPU使用統計を出力する間隔は、30分です
(CPU使用統計のオプションはNT,OS2では使用できません)
以下のどれかの条件を満たした場合、管理デーモンによっ
てaction(force)が実行されます。
120秒間アイドル状態の場合
10000行以上のデータ検索結果となるSQL文を実行した
desc "Schedule all applications run by the planning dept"
authid administrator
setlimit cpu -1 idle 60 rowssel 230 rowsread 100000 action force;
ユーザーがadministratorの場合は、以下のどれかの条件
を満たした場合、管理デーモンによってaction(force)が実
行されます。
60秒間アイドル状態の場合
230行以上のデータ検索結果となるSQL文を実行した
100000行以上のデータを読み込んだ
desc "Schedule all applications run by the planning dept"
authid db2admin
setlimit cpu -1 idle -1 rowssel -1 rowsread 1000 action priority 20;
ユーザーがdb2adminの場合は、以下のどれかの条件を満
たした場合、管理デーモンによってaction(プライオリティを
20下げる)が実行されます。
60秒間アイドル状態の場合
230行以上のデータ検索結果となるSQL文を実行した
1000行以上のデータを読み込んだ
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 43-44 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Ⅱ.管理プログラム開始
db2gov startの構文
>>-db2gov--start--database-----------------------configfile--logfile--|
|_nodenum_node-num_|
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅱ.管理プログラム開始
db2gov start
管理プログラム・デーモンを開始して、databaseで指定されたデータベースのモニターを行います。
database
監視対象のデータベース名またはデータベース別名を指定します。
node-num
監視対象のデータベース区画を指定します。
指定する数値は、ノード構成ファイル($DB2INSTANCE/sqllib/db2nodes.cfg)の記述と同じになります。
configfile
データベースのモニター時に使用する構成ファイルを指定します。
構成ファイルの省略時の場所は、
AIX:$DB2INSTANCE/sqllib
NT:$DB2INSTANCE/sqllib/DB2
ディレクトリーの下です。
このディレクトリにファイルが無い場合は、ファイル名がフルパス指定されている、またはカレントディレクト
リーに存在すると想定します。
管理プログラム稼働中にファイルを編集した場合、編集終了後に編集後のファイル内容が反映されます。
管理プログラム稼働中にファイルを削除した場合、AIXでは管理プログラムが終了しますのでご注意ください。
logfile
管理プログラムがログレコードを書き込むファイルの基底名を指定します。
保存されるディレクトリは、$DB2INSTANCE/sqllib/logディレクトリーです。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 45-46 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Ⅲ-Ⅰ.管理プログラム・ログ照会
db2govlgの構文
>>-db2govlg--logfile--------------------------------------------------|
|_nodenum__node-num_| |_rectype__record-type_|
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅲ-Ⅰ.管理プログラム・ログ照会
db2govlg
管理プログラム・ログ・ファイルから指定したタイプのレコードを抽出します。
logfile
参照する管理プログラム・ログ・ファイルのディレクトリー名を指定します。
node-num
管理プログラムを実行しているデータベース区画を指定します。
指定する数値は、ノード構成ファイル($DB2INSTANCE/sqllib/db2nodes.cfg)の記述と同じになります。
rectype
参照するレコードのタイプを指定します。
START
FORCE
NICE
ERROR
WARNING
READCFG
STOP
ACCOUNT
なお、出力される項目は以下の通りです。
Date
Time
NodeNum
RecType
Message
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 47-48 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: Ⅲ-Ⅰ.管理プログラム・ログ照会
logfileの出力例
2001-04-17-09.42.53
0 START
Database = SAMPLE
管理プログラムの起動
2001-04-17-09.42.53
0 READCFG
Config = C:\SQLLIB\DB2\gov_cfg1.txt
configファイルの読み込み
2001-04-17-09.46.06
0 READCFG
Config = C:\SQLLIB\DB2\gov_cfg1.txt
configファイルの再読み込み
2001-04-17-09.46.08
0 ACCOUNT
ADMINISTRATOR
*LOCAL.DB2.010417003601
2001-04-17-09.36.16
0
0
2001-04-17-09.46.08
0 ACCOUNT
DB2ADMIN
*LOCAL.DB2.010417003852
2001-04-17-09.38.53
0
0
2001-04-17-09.49.03
0 FORCE
applname `db2bp.exe` authid `DB2ADMIN` applid
`*LOCAL.DB2.010417004737` coord 0 (line 10) Idle 61
db2bp.exe
db2bp.exe
RecType::FORCE
Idle時間の制約でForceされた
2001-04-17-09.50.42
0 FORCE
applname `db2bp.exe` authid `ADMINISTRATOR` applid
`*LOCAL.DB2.010417004731` coord 0 (line 13) Rowssel 229
RecType:FORCE
Rowsselの制約でForceされた
2001-04-17-12.26.28
0 STOP
Database = SAMPLE.
管理プログラムの停止
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ブランク・ページです
( 49-50 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Ⅲ-Ⅱ.管理プログラム構成ファイル編集
管理プログラム動作中でも管理プログラム構成ファイルの編集は
可能
編集終了後、管理プログラムが自動的に管理プログラム構成ファイルの内容を取り込
みます
もし、万が一管理プログラム構成ファイルを削除した場合、
AIX上で稼動している管理プログラムは停止します。
Windowsの場合は、管理プログラムは停止せず、削除直前の管理プログラム構成ファイ
ルの内容で監視を続けます。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅲ-Ⅱ.管理プログラム構成ファイル編集
管理プログラム動作中でも管理プログラム構成ファイルの編集は可能です。
編集終了後、管理プログラムが起動するタイミング(管理プログラム構成ファイルで指定したintervalの間隔)で自
動的に管理プログラム構成ファイルの内容を取り込みます。
もし、万が一管理プログラム構成ファイルを削除した場合、
AIX上で稼動している管理プログラムは停止します。
Windowsの場合は、管理プログラムは停止せず、削除直前の管理プログラム構成ファイルの内容で監視を続けます。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 51-52 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Ⅳ.管理プログラムの停止コマンド構文
db2gov stopの構文
>>-db2gov---stop--database-------------------------------------------|
|_nodenum_node-num_|
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Ⅳ.管理プログラムの停止コマンド構文
db2gov stop
databaseで指定されたデータベースのモニターを行っている管理プログラム・デーモンを停止します。
database
監視停止対象のデータベース名またはデータベース別名を指定します。
node-num
監視停止対象のデータベース区画を指定します。
指定する数値は、ノード構成ファイル($DB2INSTANCE/sqllib/db2nodes.cfg)の記述と同じになります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 53-54 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
管理プログラムに関する注意点
管理プログラム構成ファイルのパーミッションに注意
必要なユーザー以外のみ、ファイルの読み書きが行えるようにしてください
データベース単位で管理プログラム構成ファイルが必要です
機能を利用するにはSYSADMの権限が必要です
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
参考情報
管理プログラム機能に関しては、以下のマニュアルも記述があり
ます
「管理の手引き(パフォーマンス)」
-「第9章 管理プログラムの使用法」
「コマンド解説書」
-「第1章 システム・コマンド」
-「db2gov」 および -「db2govlg」
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 55-56 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
5.監査機能
一連のデータベース・イベントの履歴レコードを取得
アクセス・パターンのキャプチャー
システムへの不正な侵入の試み、不慮の無許可アクセスを検出
システムの不正使用を削減または排除するための処置を取ることができる
ユーザーの使用履歴の保管
機密保護機能を提供するわけではない
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 5.監査機能
DB2は、DB2に対して要求があった処理のログを生成するAudit Facilityを提供します。
この機能を利用する事で、DB2で発生する特定または全てのアクティビティーを記録することが出来ます。
記録されたアクティビティーを分析する事により、システムへの不正な侵入の試み、データへの不正なアクセスの試み
の発生を確認する事が出来、分析の結果より新たなシステムの改善につなげる事が出来ます。
そのため、監査機能を稼動させるだけでなく、記録されたアクティビティーを分析する事も重要となります。
この監査機能は、権限や特権の機能のような機密保護機能を提供しない事にご注意ください。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 57-58 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
監査機能(Audit Facility)
db2auditコマンドを使用してコントロール
実行にはSYSADM権限が必要
Auditレコードは、Auditログ・ファイル内に生成
$DB2INSTANCE/sqllib/security/db2audit.logに生成
Auditレコードは、フラットファイルまたは区切り付きASCIIファ
イルに出力される
インスタンス・レベルで動作
データベースが活動中でなくてもAudit対象となるイベントを収集
以下のものをAudit(監査)する
DB2オブジェクトへの変更
データベースやシステム管理者の活動
認証(Authentication)メカニズムの使用
全てのセキュリティー関連活動
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Audit Facility(監査機能)
Audit Facilityは、SYSADM権限を持つシステム管理者だけが実行できるDB2AUDITコマンドを使用して制御します。
システム管理者は、監査機能の以下のアクションを制御することができます。
DB2 インスタンス内の監査対象イベントの記録を開始/停止する
監査機能の動作を構成する
記録したい監査対象イベントのカテゴリーを選択する
現行の監査構成の記述を要求する
バッファに保留中のすべての監査レコードをフラッシュし、それらを監査ログへ書き込む
監査ログからの監査レコードを形式設定してフラット・ファイルまたは ASCII 区切りファイルに抽出する。
現行の監査ログにある監査レコードを削除する。
生成された Auditレコードは、DB2インスタンス・ディレクトリーのsqllibの下のsecurityディレクトリー内のAuditロ
グファイルへ順番に保持されます。そのため、Auditログファイルが存在するディレクトリーは、Auditレコードを収容
するためスペースの余地が必要となります。なお、ログファイルが存在しない場合、Audit開始時に作成されます。
$DB2INSTANCE/sqllib/security/db2audit.log
Auditレコードは、フラットファイルおよび区切り付きASCIIファイルに抽出することができます。この事は、必要な情
報を探して
ファイルを直接見る事や、更なる分析のため、Audit情報をDB2の表内へ移動させるために、DB2のLOAD/IMPORTユーティ
リティーを使用する事を可能にします。
DB2 Audit Facilityは、インスタンス・レベルで動作します。これは、Audit対象となるイベントは、データベースが活
動中でなくでも、発生する可能性があるからです(例:ATTACH、CREATE DATABASEコマンドなど)。
どのAuditレコードがインスタンス内のどのデータベースに影響しているのかがわかるようにするために、殆どのAudit
レコードは、データベースの名前を含んでいます。(このフィールドは、Auditイベントがインスタンス・レベルで発生
したものである場合は、ブランクになります。)
DB2 Audit Facilityは、以下のイベントに関するAudit Trailを生成します。
認証(Authentication)メカニズムの使用
DB2オブジェクトの作成/修正/削除
システム管理者やデータベース管理者による活動
全てのセキュリティー関連活動
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 59-60 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: Audit Facility(監査機能) (つづき)
SQL考慮点
DDL、GRANT、REVOKE
実行時に、オーソライゼーション
実行時に、Auditレコードを生成
ユーザー認証メカニズムの使用とセキュリティー属性の修正を試みる2つのAuditレコードを生成
DML
ステートメントのPREPARE時に、オーソライゼーション
ステートメントのPREPARE時に、Auditレコードを生成
キャッシングされた動的SQL
ステートメントのprepare作業は、Audit可能
同一ユーザーによるその後の継続実行は、Audit不可
他のユーザーによるその後の継続実行は、Audit可能
静的SQL
静的SQLパッケージの実行は、オーソライゼーション検査(とAuditレコード)内に結果する
静的SQLパッケージ内の個々のステートメントの実行は、Audit不可
パッケージ内のSQLステートメントの実行のために要求されるオーソライゼーション検査は、パッケージが
prepare(バインド)される時に行われる。 (C)日本IBMシステムズ・エンジニアリング(株) データシステム部
Auditの流れ
DB2AUDIT CONFIGURE...
監査するスコープの設定
設定したスコープの確認
DB2AUDIT START
AUDITの開始
DB2AUDIT.CFG
DB2AUDIT DESCRIBE
監査レコードの書き出し
Audit
Active
AUDIT_BUF
フラットファイル
バッファの強制フラッシュ
監査レコードの抽出
DB2AUDIT FLUSH
DB2AUDIT.LOG
DB2AUDIT STOP
AUDITの停止
区切りつきASCII
DB2AUDIT EXTRACT...
監査レコードの消去
DB2AUDIT PRUNE...
LOAD or IMPORT
UDB
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 61-62 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: Auditの流れ
DB2AUDIT CONFIGURE
DB2AUDIT CONFIGUREコマンドにより、どのようなイベントを監査するのか、また成功した操作を監査するか、失敗した
操作を監査するか、またはその両方を監査するか等を設定します。つまり、前ページで説明した、スコープの設定を行
います。
また、成功した操作を監査するのか、失敗した操作を監査するのか、またはその両方を監査するのかは、DBAUDIT
CONFIGUREコマンドのSTATUSオプションで指定することができます。STATUSオプションにはSUCCESS,FAILURE,BOTHを設定
可能です。
DB2AUDIT CONFIGUREコマンドにより設定された値は、\SQLLIB\Instance_Name\SECURITY\DB2AUDIT.CFGというファイルに
格納されます。
DB2AUDIT DESCRIBE
DB2AUDIT DESCRIBEコマンドにより、現在設定されているスコープの情報などを確認することが可能です。また、このコ
マンドにより、現在AUDITが稼動しているか停止しているかを確認することもできます。(AUDIT activeがTRUEまたは
FALSEで判断)
DB2AUDIT START
DB2AUDIT STARTコマンドで、AUDITファシリティーを開始させることができます。SYSADM権限を持っているユーザーでな
ければAUDITを開始させることはできません。
AUDITファシリティーが開始する段階で、DB2AUDIT CONFIGUREで設定したDB2AUDIT.CFGの情報が読まれ、監査するように
指定されているスコープの情報を入手します。AUDITファシリティーが活動状態にある間、監査するように指定されてい
るスコープに関連する監査レコードがDB2AUDIT.LOGというファイルにかき出されます。この際、DB2AUDIT.LOGへの出力
を効率的に行うために、AUDITバッファーの調整を行うことができます。このバッファーの大きさは、AUDIT_BUF_SZとい
うデータベースマネージャー構成ファイルにおいて指定することが可能です。省略時ではAUDIT_BUF_SZには0が設定さ
れています。これは、監査レコードの書き込みの際にバッファーを使用しないことを意味しています。そのため、監査
レコードのDB2AUDIT.LOGへの書き込みは同期的に行われることになり、非常にオーバーヘッドが大きくなる危険性があ
ります。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Auditの流れ
DB2AUDIT FLUSH
このコマンドにより、AUDITバッファー上のレコードを強制的にDB2AUDIT.LOGにかき出すことができます。
監査レコードの書き出しに、AUDITバッファーを使用するように設定している場合には、このコマンドでバッファー上の
レコードをファイルに強制的にかき出す必要があります。
DB2AUDIT STOP
DB2AUDIT STOPにより、AUDITファシリティーを終了させることができます。
DB2AUDIT EXTRACT
このコマンドにより、DB2AUDIT.LOGに蓄積された監査レコードをファイルに出力することができます。出力ファイルの
形態はフラットファイルと区切りつきASCII形式のどちらかを選択することができます。フラットファイルへの出力は、
通常のエディターなどで監査レコードを見る場合に使用します。この方法は、大量の監査レコーどを分析する目的には
適さないため、少量の監査レコードを検証するような場合に使用します。区切りつきASCII形式で監査レコードを抽出し
た場合、スコープごとのデータが別々の区切りつきASCII形式のファイルとして出力されます。そのため、これらファイ
ルから、スコープごとにUDBの表へデータをIMPORT(またはLOAD)することが可能です。このようにすることで、大量の
監査レコードに対してSQLでの分析が可能になります。データをIMPORTまたはLOADするためには、あらかじめ表を作成し
ておく必要があります。表の定義はスコープ単位に決められています。(これら表の定義情報は、FIXPACK3に付属の
AUDITFUN.TXTか「UDB AUDIT FACILITY」というSILを参照してください。)
DB2AUDIT PRUNE
DB2AUDIT PRUNEコマンドにより、DB2AUDIT.LOG内のデータを消去することができます。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 63-64 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
処理
Audit機能の開始・停止
Audit Facilityの開始 - db2audit start
Audit Facilityの停止 - db2audit stop
Audit Facilityの開始後、全ての既存の接続および後続の接続はAuditの対象となる
Audit構成の設定
Audit Facilityの構成 - db2audit configure
Audit Facilityの構成内容の表示 - db2audit describe
Audit Facilityの構成のリセット - db2audit configure reset
Auditレコードの抽出
ログ・ファイルからの情報の抽出 - db2audit extract
Auditログに対する操作
ログ・ファイルへ情報の強制書込 - db2audit flush
Auditバッファーの設定がされている場合に、バッファー内の全てのレコードを強制的にAuditログファイル
に書き込む。
ログ・ファイル内のレコード削除 - db2audit prune
全レコードの削除、または指定した日時以前のレコードの削除
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 処理
Auditは、db2audit startコマンドの発行により、活動化されます。
Auditは、スタートした後、全てのデータベース・マネージャー・セッションのために活動します。
同様に、Auditは、db2audit stopコマンドにより、停止させる事ができます。デフォルトは、オフです。
Auditが開始された時、後続のDB2への接続と同様に全ての既存の接続は、Auditの対象となります。
Auditが停止された時、DB2は全ての既存の接続と新しい接続がAuditされる事がない様にAuditをストップします。
Auditの構成情報は、インスタンス作成時にインスタンス・ディレクトリーのsqllibディレクトリーの下の security
ディレクトリーに作成されます。
$DB2INSTANCE/sqllib/security/db2audit.cfg
db2audit configureコマンドを使ってAudit構成の指定を行います。これによってdb2audit.cfgファイルが更新されま
す。
db2audit describeコマンドは、現在のAudit構成の情報(db2audit.cfgの内容)を画面に表示します。
例えば、"Auditはアクティブか?"、"何がAuditされているのか?"などの様な情報が表示されます。
db2audit configure resetコマンドを使ってAudit構成ファイルをデフォルトに戻す事ができます。またこの時Auditが
活動している場合、停止されます。
db2audit configureコマンドは以下のカテゴリ("scope")を指定することによって、Auditするイベントを特定しま
す。
"ALL"では、以下の全てのタイプのイベントがAuditされます。
"AUDIT"では、Auditの設定が変更されたり、AuditログがアクセスされたときにAuditされます。
"CHECKING"では、オブジェクトまたは機能に、アクセスまたは処理しようとした時の許可検査がAuditされます。
"OBJMAINT"では、データオブジェクトの作成または除去時にAuditされます。
"SECMAINT"では、特権または権限の付与、取り消しの時にAuditされます。
"SYSADMIN"では、SYSADM,SYSMAINT,SYSCTRL権限を必要とする操作が実行された時にAuditされます。
"VALIDATE"では、ユーザを認証したりシステム機密保護情報を検索する時にAuditされます。
"CONTEXT"では、データベース操作の実行時にAuditされます。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 65-66 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: 処理(つづき)
db2audit extractコマンドを使用して、Auditログ・ファイルからAuditレコードを抽出する事ができます。
抽出したファイルはスクリーンに表示(標準出力)したり、他のファイルに出力(例:その後のデータベース表へのロー
ドのために)したりすることができます。
db2audit extractコマンドを使用して抽出できるファイル形式は、フラットファイルまたは区切りつきASCIIファイルで
す。
フラットファイルへ抽出する場合、指定したファイル名に抽出されます。
区切りつきASCIIファイルの場合は、$DB2INSTANCE/sqllib/securityの下に、カテゴリ毎に抽出したファイルが作成され
ます。
db2audit flushコマンドは、Auditバッファの設定がされている場合、Auditバッファ内の全てのAuditレコードを強制的
にAuditログファイルに書込みます。
db2audit pruneコマンドは、AuditレコードをAuditログから削除します。
全てのログの内容を削除するか(ログファイルは削除されない)、または指定した日時以前のログレコードを削除する
かを指定できます。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ブランク・ページです
( 67-68 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
区分化されたデータベース環境での処理
区分化されたデータベース環境(UDB EEE使用時)でのAudit
db2audit start/stop は、全てのノードで活動化される
各ノードで発生したAuditレコードは、1つのAuditログ・ファイルに収集される
区分化されたデータベース環境では、ほとんどのAuditレコードは、コーディネーター
ノード番号およびイベントが発生したノードの番号を含んでいる
多くのイベントはカタログノードで発生する
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: 区分化されたデータベース環境での処理
区分化されたデータベース環境でのAudit
区分化されたデータベース環境では、ユーザーの認証(Authentication)は、ユーザーが接続したノードで実行され
ます。
この様に、マルチ・ノード環境においては、Auditの対象となるイベントは、1つ以上のノードで発生します。
区分化されたデータベース環境でのAuditは、ノード・レベルで実行されます。
db2audit startコマンドとdb2audit stopコマンドは、区分化されたデータベース環境内の全てのノードで実行されま
す。
各ノードで発生した全てのイベントのAuditレコードは
$DB2INSTANCE/sqllib/security(全ノードで共有)ディレクトリーの下のAuditログファイルに保持されます。
$DB2INSTANCE/sqllib/security/db2audit.log
Auditログファイルは、全てのノードに渡って共用されます。
どのAuditレコードが、どのノードに関連しているのかを識別するために、
殆どのAuditレコードは、コーディネーターノード番号およびイベントが発生したノードの番号を含んでいます。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 69-70 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
オペレーティングシステムやDBサーバへの影響
Auditするよう設定するカテゴリーの種類は可能な限り制限される
べきである
全てのレコードはディスク上に蓄積される
デフォルトでは、多くのカテゴリーが選択されている
Auditログ書込みの同期、非同期処理
Auditバッファーを使用するとディスクへの書き込みは非同期に行われる
バッファーを使用しない(デフォルト)場合、Auditを生成するイベントはレコードがディスクに書込まれ
るまで待機する。各レコードに関連して待機が発生するとDB2のパフォーマンスが低下する原因となる。
バッファーを使用すると、Auditレコードを生成するイベントは、レコードがディスクに書込まれるまで待
機せず操作を続行することができる。非同期のケースでは、データベースマネージャーは定期的にAuditレ
コードをディスクに書込む。
db2audit flushコマンドの使用
強制的にAuditレコードをバッファからディスクに書込むことができる。
データベースマネージャー構成パラメーターAUDIT_BUF_SZにて設定する
指定する値は4KB単位の数値で、デフォルトはゼロ(0)
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: オペレーティングシステムやDBサーバへの影響
オペレーティング・システム や DBサーバーへの影響
進行中のAuditが使用するリソースの量は、オペレーティング・システムの資源とDBサーバーのパフォーマンスの両
方に、
直接的な影響を持ちます。db2audit機能により生成された全てのAuditデータは、ディスクに蓄積されます。
Auditするイベントのスコープは、可能な限り制限されるべきです。この事により、AuditされたAPI/SQLコマンドの
実行への
パフォーマンス上のインパクトと、Audit Trailのサイズを最小化するでしょう。
AuditレコードがAuditログに書込まれるタイミングによって、インスタンス内のデータベースのパフォーマンスは
大きな影響を
受けます。Auditレコードの書込みはイベントの発生と同期または非同期で行われます。データベースマネージャー
構成
パラメータのAUDIT_BUF_SZの値によってAuditレコードの書込みのタイミングが決まります。
AUDIT_BUF_SZの値がゼロ(0)の場合、書込みは同期的に行われます。
Auditレコードを生成するイベントは、レコードがディスクに書込まれるまで待機します。
各レコードに関連して待機が発生するとDB2のパフォーマンスが低下する原因となります。
AUDIT_BUF_SZの値がゼロより大きい場合、内部バッファを使用するためレコードの書込みは非同期で行われます。
Auditレコードを生成するイベントは、レコードがディスクに書込まれるまで待機せず操作を続行することができま
す。
非同期のケースでは、データベースマネージャーは定期的にAuditレコードをディスクに書込みます。
db2audit flushコマンドを使用することによって、強制的にAuditレコードをバッファからディスクに書込むことが
できます。
システム管理者は、update dbm cfg コマンドまたはコントロールセンターを使用してAuditバッファーサイズを変
更することができます。
AUDIT_BUF_SZに指定する値は4KB単位の数値で、デフォルトはゼロ(0)です。
例:40KBのAuditバッファを割り当てる場合
update dbm cfg using audit_buf_sz 10
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 71-72 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Audit(監査)コマンド構文(db2audit)
>>-db2audit-------------------------------------------------------->
>--configure----reset----------------------------------------------><
|__/Audit Configuration/__________________________|
|_describe____________________________________________________|
|_extract______/Audit Extraction/_____________________________|
|_flush_______________________________________________________|
|_prune________all____________________________________________|
|__date__YYYYMMDDHH________________________________|
|_pathname__Path-with-temp-space_|
|_start_______________________________________________________|
|_stop________________________________________________________|
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Audit(監査)コマンド構文(db2audit)
db2audit configure
Audit構成ファイル:$DB2INSTANCE/sqllib/security/db2audit.cfgの内容を変更
インスタンス停止時でも変更可能
db2audit configure resetでは、構成ファイルが初期構成に戻る
db2audit configure Audit Configurationでは、Auditするカテゴリー、ステータス、エラータイプを指定する
db2audit describe
db2audit configure で設定したAudit構成情報の内容を標準出力に表示
db2audit extract
db2audit extract で、指定したファイル形式にAuditログレコードを抽出
db2audit flush
Auditバッファに存在する全てのAuditレコードを強制的にAuditログに書込む
db2audit prune
allを指定するとAuditログ内の全てのレコードが削除される
date YYYYMMDDHHを指定すると、指定した日付、時刻以前のレコードを削除する
pathnameはAudit機能がログファイルを整理する時に使用する一時スペースを指定することが可能
この指定はAuditログファイルが存在するディスクに十分な空きスペースがないときに有効
db2audit start
db2audit.cfgの内容に基づいてAudit機能によるイベントの監査を開始
区分化されたデータベース環境では全てのノードでイベントの監査を開始
db2audit stop
イベントの監査を停止
区分化されたデータベース環境では全てのノードでイベントの監査を停止
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 73-74 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Audit(監査)コマンド構文(db2audit configure)
AUDIT CONFIGURATION
>-------------------------------------------------------------------->
|__scope___all_______________| |__status_____both_____|
| <__,____________< |
|_success__|
|_audit_________|
|_failure__|
|_checking______|
|_objmaint______|
|_secmaint______|
|_sysadmin______|
|_validate______|
|_context_______|
>--------------------------------------------------------------------|
|__errortype___audit______|
|_normal_____|
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Audit(監査)コマンド構文(db2audit configure)
scope
どのカテゴリーのイベントをAuditするかを指定(ALL以外は複数指定可)
ALL:
全てのカテゴリ
AUDIT:
Auditの構成変更、Auditログへのアクセスなどのイベント発生時
または管理サーバ構成パラメータの変更時
CHECKING: DB2オブジェクトまたは機能にアクセス時または処理時の許可検査
OBJMAINT: オブジェクトの作成、除去時
SECMAINT: オブジェクト、データベースの特権またはDBADM権限の付与、取り消し時
データベースマネージャー構成パラメータが変更された時も生成(セキュリティー関係のみ)
SYSADMIN: SYSADM、SYSMAINT、SYSCTRL権限が必要とされる操作の実行時
VALIDATE: ユーーザの認証時、SECURITY情報の検索時
CONTEXT: データベース操作実行時のログ
データベース操作時のSQL文が保管されるためCONTEXTレコードは非常に大きくなる場合あり
status
success: 正常終了したイベントをログ
failure:
失敗したイベントをログ
both:
その両方をログ
scopeで指定する"CONTEXT"カテゴリのイベントは操作の状況が認識される前に発生するため、
このパラメータの設定に関係なくログされる
errortype
audit:
Audit機能内で起こったエラーを含めて全てのエラーはDB2によって管理、
エラー時のSQLCODEは呼び出し元に返される
Auditログファイルのディレクトリがdisk fullでログが書込めなかったり、Audit構成ファイルが壊れたりした
場合等のAudit機能独自のエラーもアプリケーションに返される。
normal: db2auditで生成された全てのエラーは無視。
実行の操作に関連したエラー時のSQLCODEだけがアプリケーションに返される。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 75-76 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Audit(監査)コマンド構文(db2audit configure)
db2audit configureコマンドの例
全カテゴリ指定、statusはfailure、errortypeはnormalの場合
db2audit configure scope all
カテゴリはCHECKINGとCONTEXT、statusはboth、errortypeはauditの場合
db2audit configure scope checking,context status both errortype audit
デフォルト(カテゴリはCONTEXT以外全部、status failure、 errortype normal)
db2audit configure reset
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Audit(監査)コマンド構文(db2audit configure)
db2audit configureのデフォルト
scopeのデフォルトは、CONTEXTを除いた全て
statusのデフォルトは、failure
errortypeのデフォルトは、normal
db2audit configure resetを行うと、Audit構成は、上記の全ての設定値にリセットされる。またAuditはオフと
なる。(db2audit stopを実行した場合と同じ状態)
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 77-78 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Audit(監査)コマンド構文(db2audit extract)
AUDIT EXTRACTION
>----file-----output file----------------------------------------------------------------->
|__delasc________________________________| |
<__,_______________< |
|__delimiter__load delimiter___| |__category______audit______|
|_checking___|
|_objmaint___|
|_secmaint___|
|_sysadmin___|
|_validate___|
|_context____|
>---------------------------------------------------------------------------------------|
|__database___database name____| |___status_____success____|
|__failure____|
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: Audit(監査)コマンド構文(db2audit extract)
file
output-fileで指定(フルパス指定可)したフラットファイルへログレコードを抽出
カテゴリー毎に分割されない
デフォルトの出力先は $DB2INSTANCE/sqllib/security/db2audit.out
delasc
区切り付きASCII形式のファイルへ抽出
DB2の表へLOAD/IMPORTできる
$DB2INSTANCE/sqllib/securityディレクトリの下にカテゴリー別に作成
あるカテゴリーを選択した場合、そのカテゴリーの行が全く無い場合でも空のファイルを作る
audit.del
- Auditカテゴリ
checking.del
- CHECKINGカテゴリ
objmaint.del
- OBJMAINTカテゴリ
secmaint.del
- SECMAINTカテゴリ
sysadmin.del
- SYSADMINカテゴリ
validate.del
- VALIDATEカテゴリ
context.del
- CONTEXTカテゴリ
delimiterパラメータによって、レコードを抽出する際の
「文字ストリング区切り文字」の指定可能
区切り文字は、単一の文字(!など)かまたは16進数(0xffなど)を指定可
「列区切り文字」はカンマ(,)で抽出(指定不可)
file,delasc共通
抽出ファイルと同名のファイルが既に存在する場合にはエラーになる
抽出すべきレコードがないときにextractを試みてもエラーとなる
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 79-80 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: Audit(監査)コマンド構文(db2audit extract)
category
指定したカテゴリーのイベントのAuditレコードを抽出
デフォルトでは、全てのカテゴリーが抽出
database
指定したデータベースのイベントのAuditレコードを抽出
デフォルトでは、全てのデータベースが抽出
status
"success":正常終了したイベントを抽出
"failure":失敗したイベントを抽出
デフォルトでは、両方のレコードを抽出
db2audit extractコマンドの例
全データベースの全カテゴリをフラットファイル /home/udb/extract.file へ抽出
db2audit extract file /home/udb/extract.file
区切りASCIIファイルへ出力。デリミタはデフォルト(0xff)、全てのカテゴリを抽出
$DB2INSTANCE/sqllib/securityへカテゴリー毎に抽出
db2audit extract delasc
データベースsample、カテゴリOBJMAINT,SECMAINT、ステータスfailureのレコードをフラットファイルflat.txtに
抽出
db2audit extract file flat.txt category objmaint,secmaint database sample status failure
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ブランク・ページです
( 81-82 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
Audit(監査)コマンド構文(db2audit extract)
DB2表へのLOAD/IMPORTにおける注意点
db2audit extract delascで抽出された区切り付きASCIIファイルの文字ストリングデ
リミタのデフォルトは (OxFF)である
LOAD/IMPORTコマンドの文字ストリングデリミタのデフォルトはダブルクォーテーショ
ン(")である
列デリミタのデフォルトはカンマ(,)で共通
DB2表へのLOAD例
デフォルトのデリミタで抽出したファイルを表にロード(load時にmodified byオプ
ション指定が必要)
db2audit extract delasc
db2 load from context.del of del modified by chardel0xff insert into ...
ダブルクォーテーション(")をデリミタに指定して抽出したファイルを表にロードする
例
db2audit extract delasc delimiter \"
db2 load from context.del of del insert into ...
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ブランク・ページです
( 83-84 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
DB2AUDIT機能利用手順
DB2AUDIT機能利用手順
Audit設定状況確認 (db2audit describe) ※
Audit設定変更 (db2audit configure) ※
Audit起動 (db2audit start)
Audit起動中
Auditログ削除 (db2audit prune) ※
Auditバッファ内容をログへ出力 (db2audit flush) ※
Auditログ内容出力 (db2audit extract) ※
Audit停止 (db2audit stop)
※.Audit機能停止中でも利用可能です。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ブランク・ページです
( 85-86 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
ログレコード出力例
CONNECT
正常終了
connect to sample user db2guest using db2guest
エラー
connect to sample user xuser using xuser
SELECT
正常終了
select * from testtab
エラー
select * from db2admin.a2
select * from xtable
DELETE(エラーのみ)
delete from db2admin.a2
DROP(エラーのみ)
drop table db2admin.a2
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: ログレコード出力例(データベースへの正常なconnect)
データベースへの正常なconnect
connect to sample user db2guest using db2guest
timestamp=2001-04-10-19.07.00.770000;category=CONTEXT;audit event=CONNECT;
event correlator=1;
timestamp=2001-04-10-19.07.00.780000;category=CONTEXT;audit event=CONNECT;
event correlator=2;
database=SAMPLE;application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
timestamp=2001-04-10-19.07.01.520000;category=VALIDATE;audit event=AUTHENTICATION;
event correlator=2;event status=0;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;execution id=ADMINISTRATOR;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
auth type=SERVER;
timestamp=2001-04-10-19.07.01.770000;category=VALIDATE;audit event=CHECK_GROUP_MEMBERSHIP;
event correlator=2;event status=-1092;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;execution id=ADMINISTRATOR;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
auth type=SERVER;
timestamp=2001-04-10-19.07.01.780000;category=VALIDATE;audit event=CHECK_GROUP_MEMBERSHIP;
event correlator=2;event status=-1092;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;execution id=ADMINISTRATOR;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
auth type=SERVER;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 87-88 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: ログレコード出力例(データベースへの正常なconnect)(続き)
timestamp=2001-04-10-19.07.01.780001;category=VALIDATE;audit event=CHECK_GROUP_MEMBERSHIP;
event correlator=2;event status=-1092;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;execution id=ADMINISTRATOR;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
auth type=SERVER;
timestamp=2001-04-10-19.07.01.790000;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=2;event status=0;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
object name=SAMPLE;object type=DATABASE;
access approval reason=DATABASE;access attempted=CONNECT;
timestamp=2001-04-10-19.07.01.800000;category=CONTEXT;audit event=COMMIT;
event correlator=2;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ログレコード出力例
解説: (存在しないユーザーによるデータベースへの接続要求)
存在しないユーザーによるデータベースへの接続要求
connect to sample user xuser using xuser
timestamp=2001-04-12-11.25.15.230000;category=CONTEXT;audit event=CONNECT;
event correlator=1;
timestamp=2001-04-12-11.25.15.250000;category=CONTEXT;audit event=CONNECT;
event correlator=2;
database=SAMPLE;application id=*LOCAL.DB2.010412022515;application name=db2bp.exe;
timestamp=2001-04-12-11.25.15.290000;category=VALIDATE;audit event=AUTHENTICATION;
event correlator=2;event status=-1403;
database=SAMPLE;userid=xuser;authid=XUSER;execution id=ADMINISTRATOR;
カテゴリ:VALIDATE
SQLSTATE=-1403のエラー発生
application id=*LOCAL.DB2.010412022515;application name=db2bp.exe;
auth type=SERVER;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 89-90 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: ログレコード出力例(select権限を持つ表へのアクセス)
select権限を持つ表へのアクセス
select * from testtab
timestamp=2001-04-10-19.07.37.150000;category=CONTEXT;audit event=PREPARE;
event correlator=6;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=select * from testtab;
timestamp=2001-04-10-19.07.37.160001;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=6;event status=0;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;object schema=DB2GUEST;object name=TESTTAB;object type=TABLE;
access approval reason=OBJECT;access attempted=SELECT;
timestamp=2001-04-10-19.07.37.170000;category=CONTEXT;audit event=OPEN_CURSOR;
event correlator=7;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=SQLCUR201;
timestamp=2001-04-10-19.07.37.180000;category=CONTEXT;audit event=DESCRIBE;
event correlator=8;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=select * from testtab;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: ログレコード出力例(select権限を持つ表へのアクセス)(続き)
timestamp=2001-04-10-19.07.37.280000;category=CONTEXT;audit event=CLOSE_CURSOR;
event correlator=9;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=SQLCUR201;
timestamp=2001-04-10-19.07.37.380000;category=CONTEXT;audit event=COMMIT;
event correlator=9;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 91-92 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: ログレコード出力例(select権限を持たない表へのアクセス)
select権限を持たない表へのアクセス
select * from db2admin.a2
timestamp=2001-04-10-19.07.11.660000;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=2;event status=0;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;object schema=NULLID;object name=SQLC2D01;object type=PACKAGE;
access approval reason=OBJECT;access attempted=EXECUTE;
timestamp=2001-04-10-19.07.11.660001;category=CONTEXT;audit event=PREPARE;
event correlator=3;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=select * from db2admin.a2;
timestamp=2001-04-10-19.07.11.740000;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=3;event status=-551;
カテゴリ:CHECKING
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
SQLSTATE=-551
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
TABLEオブジェクトに対して
package schema=NULLID;package name=SQLC2D01;
SELECT権限を持っていない
package section=201;object schema=DB2ADMIN;object name=A2;object type=TABLE;
access approval reason=DENIED;access attempted=SELECT;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
ログレコード出力例(select権限を持たない表へのアクセス)(続
解説: き)
timestamp=2001-04-10-19.07.11.740001;category=CONTEXT;audit event=CONTEXT_ROLLBACK;
event correlator=3;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=SQLCODE=-551;
timestamp=2001-04-10-19.07.11.750000;category=CONTEXT;audit event=ROLLBACK;
event correlator=3;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010410100700;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 93-94 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: ログレコード出力例(存在しない表へのアクセス)
存在しない表に対するアクセス要求
select * from xtable
timestamp=2001-04-12-09.33.17.500000;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=2;event status=0;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;object schema=NULLID;object name=SQLC2D01;object type=PACKAGE;
access approval reason=OBJECT;access attempted=EXECUTE;
timestamp=2001-04-12-09.33.17.510000;category=CONTEXT;audit event=PREPARE;
event correlator=3;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=201;text=select * from xtable;
timestamp=2001-04-12-09.33.17.910000;category=CONTEXT;audit event=CONTEXT_ROLLBACK;
event correlator=3;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
カテゴリ:CONTEXT
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
SQLSTATE=-204
TABLEオブジェクトが存在しない
package schema=NULLID;package name=SQLC2D01;
package section=201;text=SQLCODE=-204;
timestamp=2001-04-12-09.33.18.020000;category=CONTEXT;audit event=ROLLBACK;
event correlator=3;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: ログレコード出力例(Delete権限を持たない表へのアクセス)
Delete権限を持たない表に対するデータ削除要求
delete from db2admin.a2
timestamp=2001-04-12-09.33.34.730000;category=CONTEXT;audit event=EXECUTE_IMMEDIATE;
event correlator=4;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=203;text=delete from db2admin.a2;
timestamp=2001-04-12-09.33.35.090000;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=4;event status=-551;
カテゴリ:CHECKING
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
SQLSTATE=-551
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
TABLEオブジェクトに対して
package schema=NULLID;package name=SQLC2D01;
DELETE権限を持っていない
package section=203;object schema=DB2ADMIN;object name=A2;object type=TABLE;
access approval reason=DENIED;access attempted=DELETE;
timestamp=2001-04-12-09.33.35.100000;category=CONTEXT;audit event=CONTEXT_ROLLBACK;
event correlator=4;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=203;text=SQLCODE=-551;
timestamp=2001-04-12-09.33.35.120000;category=CONTEXT;audit event=ROLLBACK;
event correlator=4;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 95-96 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
解説: ログレコード出力例(Drop特権を持たない表の削除要求)
Drop権限を持たない表に対するDropTable要求
drop table db2admin.a2
timestamp=2001-04-12-09.33.53.400000;category=CONTEXT;audit event=EXECUTE_IMMEDIATE;
event correlator=5;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=203;text=drop table db2admin.a2;
timestamp=2001-04-12-09.33.53.660000;category=CHECKING;audit event=CHECKING_OBJECT;
event correlator=5;event status=-551;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;object name=DB2ADMIN;object type=SCHEMA;
access approval reason=DENIED;access attempted=DROPIN;
timestamp=2001-04-12-09.33.53.750000;category=OBJMAINT;audit event=DROP_OBJECT;
event correlator=5;event status=-551;
カテゴリ:OBJMAINT
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
SQLSTATE=-551
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
TABLEオブジェクトに対して
package schema=NULLID;package name=SQLC2D01;
DROP特権を持っていない
package section=0;object schema=DB2ADMIN;object name=A2;object type=TABLE;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
解説: ログレコード出力例(Drop権限を持たない表の削除要求)(続き)
timestamp=2001-04-12-09.33.53.760000;category=CONTEXT;audit event=CONTEXT_ROLLBACK;
event correlator=5;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=203;text=SQLCODE=-551;
timestamp=2001-04-12-09.33.53.770000;category=CONTEXT;audit event=ROLLBACK;
event correlator=5;
database=SAMPLE;userid=db2guest;authid=DB2GUEST;
application id=*LOCAL.DB2.010412003256;application name=db2bp.exe;
package schema=NULLID;package name=SQLC2D01;
package section=0;
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 97-98 )
DB2 UDB (PC&Unix) 運用管理シリーズ
DB2の稼動監視
注意点
監査機能のコマンドを実行するユーザーは、SYSADMの権限/特権が
必要です
監査ログ及び監査構成ファイルのパーミッションは、デフォルト
でインスタンス所有者のみ読み取り/書き取り可能となります。
この権限を変更しないでください。
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
参考情報
監査機能に関しては、以下のマニュアルも記述があります
「管理の手引き(インプリメンテーション)」
-「第6章 DB2アクティビティーの監査」
「コマンド解説書」
-「第1章 システム・コマンド」
-「db2audit」
(C)日本IBMシステムズ・エンジニアリング(株) データシステム部
( 99-100 )
Fly UP