最終回 DB2 レイヤ別トラブルシューティング集

DB2ではどのようなトラブルが想定されるのか。レイヤ別に主なトラブルとその解決方法を紹介する。(編集局)

小林 慶彦
2004/9/18

 最終回はトラブルシューティングですが、一言でデータベース・サーバのトラブルといっても、複数のレイヤでさまざまな原因が考えられます。トラブルシューティングは問題の切り分けがカギになります。

 DB2のトラブルをレイヤ別に分類すると、6種類に大別できます。

  • インストール/アップデート関連
  • システム(OS、ネットワーク)関連
  • インスタンス関連
  • データベース関連
  • ツール/コマンド関連
  • SQL/トランザクション関連

 細かいものを挙げると切りがないので、ここではLinuxに関係するものに絞って、代表的なトラブルを紹介します。

インストール/アップデートに関するトラブル

 LinuxにDB2をインストール/アップデートするに当たってよくあるトラブルは、以下の2つです。

GUIインストール時のJDK問題

 DB2のGUIインストーラはJavaベースで、標準でJDKも付属しています。しかしJDKのバージョンがやや古い(J2RE 1.3.1 IBM build cxia32131-20020622)ため、最近のディストリビューション(Red Hat Enterprise Linux 3やSUSE LINUX Enterprise Server 9)では、segmentation faultなどを起こしてしまいます。

 この場合は、CUIインストール(第1回参照)を使う、ディストリビューションに付属するJDK(JRE)を使います。ディストリビューションに付属するJDK(JRE)を使う場合は、DB2のメディアの内容をハードディスクにすべてコピーします。次に、[CD-ROMのルート]/db2/linux/javaを削除して、ディストリビューションに付属するJDK(JRE)にシンボリックリンクを張ります。

 例えば、SUSE LINUX Enterprise Server 9の場合は、以下のように行います。

# cd cdrom/db2/linux/
# mv java java.org
# ln -fs /opt/IBMJava2-142 ./java

FixPak適用時のインスタンス・アップデートの問題

 FixPak適用時、インスタンスは止まっているのにインスタンスのアップデートコマンド(db2iupdt)が失敗することがあります。この原因としては、すべてのデータベース・インスタンス(DASおよびライセンス・デーモンを含む)が停止していないか、DB2関連のリソース(プロセスやIPCリソース)が残っている場合が考えられます。

 この場合は、データベース・インスタンス(DASおよびライセンス・デーモンを含む)を停止します。次に、ipcleanとipcrmを使って残ったDB2プロセスやIPCリソースをクリーンアップします。

システム(OS、ネットワーク)に関するトラブル

 トラブルがOS関連(カーネルやドライバなど)の場合、DB2と直接関連のないことが多いので、DB2側でできることはほとんどありません。しかし、ネットワークの設定に起因する、DB2サーバとクライアントの接続に関するトラブルはLinuxでもよく見受けられます。

 例えば、クライアントからホスト名でDB2サーバをカタログしていたが、サーバのIPアドレスが変わってしまい、ある日突然接続できなくなってしまったということがあります。これは、名前解決のパフォーマンスなどを考慮して、クライアント側で/etc/hostsファイルを使っている場合によく起こります。思い当たる節がある場合は、クライアント側で名前解決が正確にできるかどうか、/etc/hostsファイルの内容を見直したり、pingなどのツールを使って実際に確認しましょう。

 コントロール・センターなどからカタログした場合は、db2system名によってカタログされることがありますが、これも同様のトラブルを引き起こします。通常、db2system名はホスト名になっています。ホスト名が解決できれば済むのですが、ホスト名での名前解決ができない場合は接続できません。このケースも、クライアント側の名前解決をチェックする必要があります。

インスタンスに関するトラブル

 インスタンスに関するトラブルは、DB2プロセスがOSから受け取ったシグナルが原因であることが一般的です。DB2プロセスがシグナルを受け取った結果、呼び出されたシグナル・ハンドラーがインスタンスをダウンさせています。このようなシグナルは、次のような場合に発生します。

  • DB2のスタックがほかのソフトウェアによって上書きされた場合
  • 許可ユーザーがDB2プロセスに対して手動でkillシグナルを送った場合
  • DB2自体が原因となっている場合(ソフトウェア障害の可能性)

 インスタンスの問題が発生すると、必ずdb2diag.log()に重要な情報が記録され、場合によってはトラップ・ファイルやダンプ・ファイルが生成されます。これらのファイルを確認して問題判別を行うわけですが、トラブルが人為的なものではない場合はソフトウェアの障害の可能性が高いので、DB2のサポートに連絡しましょう。

注:db2diag.logは、デフォルトでは[インスタンス・ホームディレクトリ]/sqllib/db2dump以下にあります。

 次に多いのが、インスタンスの起動に関する問題です。多くは、FixPakの適用時と同様に、IPCリソースが原因であることがほとんどです。ipcsコマンドなどでシェアードメモリセグメントを確認し、インスタンス・ユーザーのリソースが残っている場合は、ipcleanとipcrmを使って残ったDB2プロセスやIPCリソースをクリーンアップします。

1/2

Index
DB2マイスター養成講座
 最終回 DB2 レイヤ別トラブルシューティング集
Page 1
インストール/アップデートに関するトラブル
 GUIインストール時のJDK問題
 FixPak適用時のインスタンス・アップデートの問題
システム(OS、ネットワーク)に関するトラブル
インスタンスに関するトラブル
  Page2
データベースに関するトラブル
ツール/コマンドに関するトラブル
SQL/トランザクションに関するトラブル

連載 DB2マイスター養成講座


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH