バージョン 6.1.4
 —  Adabas の管理  —

データベースの監視とチューニング

このドキュメントでは、データベースパフォーマンスのモニタリングとチューニングについて説明します。

次のトピックについて説明します。


リソース使用のモニタリング

データベースの完全性が維持され、かつ効果的なレベルのサービスが提供されていることを保証するため、継続してデータベース環境のモニタリングを行うのは DBA の役目です。 DBA の役割としては、さまざまな活動や手順が含まれます。このセクションでは、その中のいくつかを取り上げています。

DBA には、ある一定のレベルにデータベースパフォーマンスを保つ役目がありますが、これは重要で、しかも容易なことではありません。 サービスの低下を招く原因は数多くあり、多くの場合、それらを追求することは容易ではありません。原因が判明した場合でも、その調整には複雑なプロセスを要する場合があります。

DBA は、サービスの低下が起こる前にこれを予測したり、データベースのオペレーションや設計を規則的に制御された方法で調整する一連の手順を設定したりしなければなりません。 これらの手順には以下の活動が含まれます。

Top of page

データベース使用のレポート

DBA は、データ処理部門とユーザー部門のマネジメントに対して、データベースの使用とパフォーマンスに関してレポートを作成し、定期的に報告する義務があります。 このレポートに含まれる情報は、できるだけ事実に沿ったものでなくてはならず、同時にデータベース環境に対するチューニングの勧告も含まれていなくてはいけません。 チューニングは組織全体には利益をもたらしますが、一部のユーザーにはサービスの低下になることもあります。 したがって、チューニングに関する決定は、影響を受けるユーザーのことを考慮しなければなりません。

Top of page

データベース制御のモニタリング

DBA は、データベースの完全性を保証するために適切な制御方法を設定し、これをモニタしなければなりません。

このコンピュータが作成する管理情報(コントロールトータル)がコンピュータ処理実行時間や生成レポートについてチェックするときに役立ちます。 バッチレスポンス(または問い合わせ)では、実行時間、サーチパラメータ、最終データ更新時刻およびプライマリパラメータコントロールのような情報を含みます。 これは、信頼レベルを高め、データベースの完全性を保証するうえで役に立ちます。

コントロールトータルの問題は、インストールによってその形態もさまざまです。 そのため、これについて厳しい固定的な規則を作成するのは不可能といえますが、 一般的な指針であれば設定することはできます。

データベースを使用する各アプリケーションシステムの設計時に、DBA は次のような考慮がされているかを確認する必要があります。

Top of page

パフォーマンス管理、統計、チューニング

次の表に、使用する統計のモニタリングのいくつかとデータベース環境に対する調整(またはチューニング)を示します。

変化するもの 必要なチューニング
データベースの構造 使用するアクセスメソッド ハードウェアまたはソフトウェア構成 処理優先度 ディスクストレージ割り当て
端末およびライントラフィック   X X X X
レスポンスタイム(アプリケーションのパフォーマンス) X X X X X
ユーザーおよびディスクリプタによる総アクセス X X     X
データベースサイズ X X X   X
データベースの成長度 X X X   X

本番データベースに何らかの変化があったときは、信頼性や完全性を高度に保つよう十分な注意が必要です。 何が変化しても、DBA は正しい判断を下しそれが正確に行われるよう保証しなければなりません。 チューニング処理に対して DBA は絶対的なコントロールを持ち、正式な受入れ手順に沿っているかを確認しなければなりません。

上の表中の項目の変化について過度に対応することがないよう DBA は注意しなければなりません。 ライントラフィックやレスポンスタイムなどが突然変化した場合、一時的な現象かもしれないので、 通常のオペレーティング状態でしばらく様子を見て、恒久的な傾向なのか一時的な現象なのかを判断することをお勧めします。 もう 1 つの表の見方として、新規プロジェクトの導入により、端末およびライントラフィック、レスポンスタイムなどに大幅な変化がみられるとき、チューニングが必要になる可能性があるのかどうかを確認することもできます。DBA は、新規アプリケーションシステムを実装する前に、これらの影響を最小限にとどめるように対応できます。

Top of page

コマンドロギング

Adabas ニュークリアスの Adabas コマンドログオプションを使って、Adabas に対してユーザーが出した全コマンドに関する情報を生成できます。

得られる情報には、以下のものが含まれます。

この情報を参照することで、データベースのアクティビティについて詳しく把握することができます。 この情報は、ユーティリティ ADACLP を使用することにより表示できます。

Top of page

showipc(UNIX のみ)

showipc は、DBA が UNIX カーネルの IPC 構成を見たり、Adabas/Entire Net-Work の IPC 構造を見たり、それらを削除するのに使用するツールです。 各データベースに対して、そのデータベースに関連する共有メモリ、メッセージキュー、セマフォを showipc は表示します。

次のオプションを利用できます。

showipc [-adfhiksv] [-e<string>] [-g<g_name>] [-r<sec>] [-u<u_name>] [<dbid>...]

1 つ以上の <dbid> 引数を使用できます。 <dbid> が省略された場合、showipc はすべてのアクティブなデータベースに対する IPC 構造を処理します。 有効な DBID を表す数値に加えて、文字列 CSCI、ACS、U も使用できます。 CSCI(Client Server Communication Interface)を指定すると、CSCI ユーザーの全 IPC エレメントの情報が返されます。 ACS が指定されると、NETACS(NET-WORK アクセスサーバー)が使用している IPC エレメントの情報が返されます。 U は、データベースを関連付けることができないすべての要素を示します(データベース不明)。

また showipc は、複数の論理 NET-WORK ノードをサポートしています。 NET-WORK の IPC 構造は、<dbid> ゼロと NET-WORK ID によって識別されます。 -a および -e オプション(下記説明を参照)が使用されない場合は、デフォルトの NET-WORK ID に関する情報が表示されます。 環境変数 NET_WORK_ID が設定されていると、一致する NET-WORK ID も処理されます。

次の表は提供されているさまざまなオプションの意味について説明しています。

オプション 説明
-a 同時に稼動している論理 NET-WORK の全ノードの構造を表示します。
-d -k オプションとともに使用します。データベース用の IPC エレメントが残っていない状態であっても、IPC ドライバのリソースを強制的に削除します。
-d オプションは、常にデータベース ID が必要になります。

注意:
このオプションは、バージョン 3.1 の Adabas データベースにのみ使用してください。

-e<string> 情報を表示させる NET-WORK ID を指定します。 NET-WORK ID の最初の文字はユニークでなければいけないので、<string> のそれぞれの文字が 1 つの NET-WORK ID として認識されます。
-f -k オプションとともに使用します。これは NETACS と CSCI(その他のものは削除されない)のエレメントを強制的に削除します。
-g<g_name> デフォルトユーザー('sag'、'adabas'、'natural'、'esq'、$SIPGROUP)の代わりに、グループ <g_name> が所有している IPC エレメントを探します。
-h showipc の使用方法について説明するヘルプ画面を表示します。
-i -k オプションとともに使用します。これは IPC エレメントを削除する前に、削除の確認をします。
-k 使用されていない IPC エレメントを削除します。 削除する前に、データベースの GCB 共有メモリが使用中かどうかを、showipc はチェックします。 まだ使用中なら、削除をやめます。 Software AG では、-k オプションとともに -i オプションを使用するのをお薦めします。
-r<sec> <sec> 秒ごとに指定されたコマンドを繰り返します。 Crtl キーと C キーを同時に押すと、コマンドの実行が終了します。
-s 実行中の UNIX カーネルの IPC 構成値を表示します。 これは UNIX カーネルが正しく構成されているかのチェックにも役立ちます。
-u<u_name> デフォルトユーザー('sag'、'adabas'、'natural'、'esq'、$SIPUSER)の代わりに、ユーザー <u_name> が所有している IPC エレメントを探します。
-v データベースの詳細な情報を表示します。

showipc の出力

デフォルト出力の最初の列には、NET-WORK の場合には "NET"(デフォルトの NET-WORK ID でなければ NET-WORK ID に伴います)、NETACS の場合は "NACS"、CSCI の場合は "CSCI"、対象データベースの DBID の数値のいずれかが表示されます。 この後に、データベースに対する IPC エレメントのリストが続きます。 各エレメントのエントリは、そのタイプを示す略語、区切りを表すコロン、そのエレメントの IPC ID から構成されます。 この ID は ipcrm コマンド(showipc -k <dbid> の方がもっと便利ですが)で使用されます。 以下の略語が使用されます。

共有メモリ

ATB アタッチバッファ共有メモリ
CSA 共通共有エリア
CSM CSCI 共有メモリ
DRV Adabas IPC ドライバ共有メモリ
GCB ジェネラルコントロールブロック
GDT グローバルデータベース(Net-Work)
OPR ADAOPR(CSA= オプション使用時)によって作成された共有メモリ
PHx ID x を持つプロトコルハンドラ
ESi Adabas SQL サーバー共有メモリ ID の i

メッセージキュー

CLM コミュニケーションクライアントメッセージキュー
CSQ CSCI メッセージキュー
RSQ ユーザーレスポンスキュー
SRV コミュニケーションサーバーメッセージキュー
SVQ ニュークリアススレッドキュー
USQ ユーザー要求キュー

セマフォ

CLS コミュニケーションクライアントセマフォ
CSS CSCI セマフォ
PSE プライベートセマフォ
SEM 他のセマフォ
ESQ Adabas SQL サーバーセマフォ

詳細出力形式(-v オプション)を指定すると、各エレメントに対する付加情報が表示されます。 データベースごとに 3 つの表(共有メモリ、メッセージキュー、セマフォごとに 1 つずつの表)が表示されます。 これらの表の列は次のような意味を持っています。

共有メモリ

説明
TYPE IPC 要素のタイプ(省略形を参照)
NI NET-WORK ID(デフォルト以外の場合)。1 文字に切り捨てられることがあります。
ID IPC ID
SIZE 共有メモリのサイズ(バイト単位)
説明
LOPPID 最後に shmop() コールを処理したプロセスのプロセス ID
CRPID 共有メモリを作成したプロセスのプロセス ID
ATTPROC アタッチされたプロセスの数(オペレーティングシステムによって常にサポートされているわけではありません)

メッセージキュー

説明
TYPE IPC 要素のタイプ(省略形を参照)
NI NET-WORK ID(デフォルト以外の場合)。1 文字に切り捨てられることがあります。
ID IPC ID
NBYTES メッセージキューのバイト数
NMSGS メッセージキューのメッセージ数
LSND 最後にメッセージを送信したプロセスのプロセス ID
LRCV 最後にメッセージを受信したプロセスのプロセス ID。

セマフォ

説明
TYPE IPC 要素のタイプ(省略形を参照)
NI NET-WORK ID(デフォルト以外の場合)。1 文字に切り捨てられることがあります。
ID IPC ID

NETACS エレメントの場合には、TYPE 列は、NETACS ドメインを表す DOMN に置き換わります。

注意:
showipc はカーネルのメモリ構造を読み取るので、root 権限を持たせて showipc を実行しなければなりません。

実行カーネルにデフォルトの名前(例えば HP-UX の場合の /hp-ux など)がない場合、showipc は該当のエラーメッセージを発行して終了します。 この現象は環境変数 SIP_KERNAM に正しい名前を設定することで回避できます。例えば、csh の場合は、setenv SIP_KERNAM '/mykernel' というように設定してください。

環境変数

次の環境変数を showipc と組み合わせて使用できます。

環境変数 説明
ADANOD ここにはユーティリティ ADANOD のフルパス名を設定します。 メッセージ "could not find adanod" が表示された場合には、この環境変数を設定する必要があります(詳細については、メッセージの項を参照)。
NET_WORK_ID ここにはデフォルトの NET-WORK ID に加えて処理する NET-WORK ID を設定します(詳細については、showipc の -e オプションと -a オプションを参照)。
SIP_KERNAM ここには UNIX カーネルの名前を設定します(詳細については、前述の注意を参照)。
SIPGROUP 環境変数 SIPGROUP を設定した場合、その内容がデフォルトグループのリストに付加されます(オプション -g を参照)。
SIPUSER 環境変数 SIPUSER を設定すると、その内容がデフォルトユーザーのリストに付加されます(オプション -u を参照)。 例えば、SIPUSER に harry を設定すると、デフォルトユーザー(現在では sag、adabas、esq、natural など)、または harry に属するすべての IPC エレメントが表示されます。

メッセージ

これより、showipc 実行時に受け取るメッセージについて説明します。

Cleared up driver resources for DB xx
説明

showipc は、-k オプションを指定した場合、Adabas バージョン 2.1 以上の IPC 構造を削除するだけでなく、対応するデータベースの IPC ドライバのリソースも解放します。

対処

ありません。


Could not attach to global data area of database xxx
説明

データベース xxx の CSA が不整合を起こしているか、showipc に適したフォーマットになっていません。

対処

この問題がデータベース稼動時に起きたら、サポートセンターにご連絡ください。


Database yy of Adabas Vz.z might be incorrectly displayed by showipc V x.x
説明

データベースのバージョンが showipc のバージョンよりも新しいために、このデータベースの IPC 構造の出力が正しいかどうか不明です。

対処

より新しいバージョンの適切な showipc を使用します。


Db xx is of version ww - please use version ww of showipc to remove
説明

データベース xx のニュークリアスは、コール先の showipc よりも新しいバージョンです。 showipc はこのデータベースの IPC 構造を削除しません。

対処

より新しいバージョンの適切な showipc を使用します。


Found inconsistent data structures for DB xxx
説明

データベース xxx の内部データ構造が showipc と矛盾しています。

対処

データベースのバージョンをチェックします。 使用している showipc のバージョンよりデータベースのバージョンが新しい場合には、適切なバージョンの showipc を使用します。 それでも問題が発生する場合には、サポートセンターにご連絡ください。


GCB of DB xx still in use, I do not remove anything
説明

まだアクティブなデータベース(ニュークリアスが稼働中か、Adabas ユーティリティがアクセスしている)に対して showipc -k がコールされました。 IPC 構造は削除されません。

対処

どうしてもそのデータベースの IPC 構造を削除したい場合には、そのデータベースにアクセスしているプロセスを終了して(showipc -v <xx> を使用してどのプロセスかを確認してください)、再度実行してみてください。


GDT is still in use by DB xx; not removed
説明

少なくとも 1 つの GDT を使用しているデータベースがあります。これは、showipc では削除できません。

対処

ありません。


I do not remove private semaphores
説明

showipc は、指定したデータベースに関連しない Adabas セマフォを削除しません。

対処

ありません。 Adabas ユーティリティの失敗/異常終了で残ったセマフォは ipcrm を使用して削除できます。


NET-WORK xx still running, I do not remove anything
説明

指定された ID を持つ NET-WORK がまだアクティブです。 showipc はこの NET-WORK ID に関連する IPC 構造を削除しません。

対処

ありません。


Sorry, but this program has to be run with supervisor privileges
説明

showipc 実行可能ファイルに正しい権限が設定がされていません。 ユーザー ID の権限が設定され、オーナーは root でなければなりません。

対処

権限をチェックし、必要であれば、権限を正しく設定してください。


Sorry, I will remove CSCI elements only with -f option
説明

-f オプションを使用すると、CSCI エレメントだけが削除されます。

対処

-k オプションに -f オプションを追加します。


Sorry, I will remove CSCI elements only with -f option
説明

-f オプションを使用すると、NET-ACS エレメントだけが削除されます。

対処

-k オプションに -f オプションを追加します。


Structure mismatch for DB xx - Cannot identify version
説明

問題のデータベースの内部データ構造を正しく解釈することができません。

対処

このメッセージは、データベースの起動中に発生することがあります。この場合は無視してかまいません。


Warning: could not find adanod for clean up of Adabas driver
説明

Adabas IPC ドライバリソースを削除するときに、ユーティリティ adanod が必要になります。

対処

環境変数 ADANOD に adanod をフルパス名で設定してください。


Warning: Found <structure> with invalid database ID xx contained
説明

関連ユーザーの 1 人に属する構造が間違ったキーを持っています。 その構造とは、共有メモリ、メッセージキュー、セマフォのどれかです。

対処

該当する構造を作成したプロセスをチェックします(showipc は作成したプロセスのプロセス ID を表示します)。 そのプロセスが Software AG 製品でない場合は、Adabas に干渉しないようにその製品を修正してください。 そのプロセスが Software AG 製品の場合は、サポートセンターにご連絡ください。


Warning: Some NET-WORK IDs may be displayed truncated to one character
説明

showipc の -e または -a オプション使用時に、showipc はいくつかの NET-WORK ID の中から 1 文字だけ取り込みました。 NET-WORK ID は最初の 1 文字でユニークかどうかを判断します。

対処

環境変数 NET_WORK_ID を適宜、設定することによって、他の NET-WORK ID も対象にできます。


showipc

すべての Adabas データベースおよびデフォルトの NET-WORK ID の IPC 構造を表示します。

showipc -av

すべての Adabas データベースおよびすべての論理 NET-WORK ID の IPC 構造を詳細表示形式で表示します。

showipc -ki 127

データーベース 127 のニュークリアスが稼動していなければ、そのデータベースの IPC 構造をすべて削除します。 削除する前に、確認メッセージが表示されます。

Top of page

showgdt(UNIX のみ)

showgdt は、DBA がグローバルデータベーステーブル(GDT)の現在の状態を見るために使用するツールです。 その表示には、ローカルノード上のすべてのデータベースが含まれます。 GDT とは、周知(ローカルおよびリモート)のデータベースを管理するのに使用される、ノード固有のデータ構造を指します。

GDT には各データベースについての次のようなエントリが含まれます。

showgdt は、アクセス可能なデータベースの概要を表示します。 ヘッダーには GDT の NET_WORK_ID、作成日時、GDT を最初に作成したオブジェクトといった一般的な情報が含まれます。 ローカルシステムが認識している各データベースに対して、そのバージョン番号(バージョン 2.x のデータベースであれば 2)、ステータス情報、付加的なステータス固有のデータが、リスト形式で表示されます。 ステータス情報は次の内容を示します。

ステータス 説明
NETWIDE ローカル Entire Net-Work で定義されている。
REMOTE リモートノード上で稼動している。ローカルノードにアタッチされている。
LOCAL ローカルノード上で稼動している。

リモートノードにデータベースがアタッチされている場合、リモートノードが NETWIDE として定義されているかどうかについても示します。

Top of page

ダンプテープの準備

障害情報の準備

カスタマサイトで障害が発生した場合、Software AG では、迅速な解決のためにできる限りの努力をします。 障害の分析に必要な時間を最小にして、解決策を提供するため、担当者は障害についての詳細な情報を必要とします。

標準的な障害情報には次の項目が含まれます。

障害が再現しない場合、障害情報には次の項目も必要です。

テープでの障害情報

その障害の性質によって、テープで提供された情報が障害分析に必要です。 Software AG サポートがテープの内容をコピーする最適の環境を構築できるように、テープの内容の記述を加える必要があります。 データのアンロードのために十分なディスクスペースを割り当てなければならないので、テープに大量データが含まれている場合、これは特に重要なことです。 障害データを提供すること、ファイルを選択してコピーできるように傷害データに関する説明を記述することが必要です。

テープドキュメントに記述する内容は、テープのラベル、サイズも含めた全ファイルのリストです。 バックアップがテープに含まれている場合、それぞれのバックアップに応じた情報を分けておく必要があります。

提供すべき障害データは障害の種類に依存します。 次の障害カテゴリのいずれかに割り当ててください。

ニュークリアスの異常終了

次のような障害データをテープで提供してください。

ニュークリアス自動再スタートの異常終了

次のような障害データをテープで提供してください。

ユーティリティの異常終了

次のような障害データをテープで提供してください。

データ破壊障害

次のような障害データをテープで提供してください。

その他の障害

次のような障害データをテープで提供してください。

Top of page