Contenu connexe
Plus de Akira Shimosako (6)
STSC便り:DB2お問い合わせあるあるTOP5
- 4. 1: “トランザクション・ログがいっぱいです。 “というエラー
で SQL 処理が失敗します。
トランザクション・ログとは、DB2 がデータベース毎に保持してい
る復旧用のログ・ファイルです。
アクティブ・ログの領域を使い尽くし、これ以上更新情報を書き込
めない状態を表していますので、更新 SQL は実行できません。
対応方法
1. 長期間未コミットのまま、アクティブ・ログを保持しているトランザクションが
あれば、コミットまたはロールバックでログ解放します。
2. 大量トランザクション実行で、ログ領域不足 の場合はログ設定値を変更し
ます。
参考:トランザクション・ログがフル (SQL0964C) になったときの対応
http://www.ibm.com/support/docview.wss?uid=jpn1J1003917
©2012 IBM Corporation
- 5. 2:Java アプリケーションから処理を実行したところ、
SQLCODE: -805 で失敗します。
SQL0805N は必要なパッケージがカタログに見つからなかったため、ステート
メントを完了できないエラーです。
対応方法
1. ユーザーによって作成されたパッケージ (スキーマ名が NULLID や
SYSIBMADM ではない) でエラーの場合、そのパッケージをバインドします。
2. DB2 システム・パッケージ (スキーマ名が NULLID や SYSIBMADM) でエラ
ーの場合、よくある原因として以下 2 つのケースがあります。
ケース1: パッケージ名がSYSL[HY]xyyの場合
ケース パッケージ名が
の場合
ケース2: パッケージ名がSQL***の場合
ケース パッケージ名が
の場合
参考*Java アプリケーションなどで SQL0805N (-805) エラーが返る
http://www.ibm.com/support/docview.wss?uid=jpn1J1000926
©2012 IBM Corporation
- 7. 3:アーカイブ・ログ・ファイルって消していいの?
"アーカイブ" という用語は、以下の異なる 2 つの動作を指すことがあります。
1)
ログ・ファイルがクローズされる
2)
ログ・ファイルがアーカイブ・ログ・パスにコピーされる
ログ・ファイルはクローズされていても、コピーされていても、アクティブ・ログ・パ
スにあるうちはアクティブ・ログの可能性があります。 アーカイブ・ログ・パスに
存在するからといってアクティブ・ログを削除してはいけません。
ログ・ファイルを整理したらDBへ接続できなくなった!
–
アクティブ・ログを削除してしまい、バックアップを取得しておらず、DB 再作成となる
ケースが稀にあります・・
参考:[DB2 LUW] ログ・ファイルがアーカイブされるタイミング
http://www.ibm.com/support/docview.wss?uid=swg21655158
[DB2 LUW] ログ・ファイルのメンテナンス方法
http://www.ibm.com/support/docview.wss?uid=swg21655160
©2012 IBM Corporation
- 8. 4:正の SQL コードはエラーではなく正常終了
コマンド行プロセッサー(以後、CLP)の戻りコードは以下の値のいづれかになります。
–
0
DB2 コマンドまたは SQL ステートメントが正常に実行されました。
–
1
SELECT または FETCH ステートメントが行を戻しませんでした。
–
2
DB2 コマンドまたは SQL ステートメントからの警告です。
–
4
DB2 コマンドまたは SQL ステートメント・エラーです。
–
8
コマンド行プロセッサーのシステム・エラーです。
アプリケーション側で、正の SQLCODE(戻りコード2)をエラーと判断してしまうケースがあります。
–
SQL0437W を Error として検知してしまうレプリケーション(DB2製品の機能)のバグ報告も…
DB2 コマンドの実行直後に“$?”で取得できるのはCLPからの戻り値のみのため、各 SQLCODE
の意味も解釈する には -ec オプションで SQLCODE も取り出す必要があります。
$ db2 -ec list applications
SQL1611W データベース・システム・モニターからデータが戻されませんでした。
1611
$ db2 -ec +o list applications
1611
$ echo $?
2
©2012 IBM Corporation
- 9. 5. DB2 ってどうやってメモリーの管理方法してる?
DB2 は、以下の 3 つの単位でメモリーを管理しています。
メモリー・セットは、DB2 が OS からメモリーを取得する単位です。
利用目的および DB2 内の様々な処理ごとに分けられます。
例えば、データベースの管理のために用いられるメモリー・セットは「データベー
ス・メモリー・セット」です。
各コンポーネントはメモリー・ブロックという単位で必要なメモリーを要求し、DB2
のメモリー・マネージャーはメモリー・セットからメモリーを割り振ります。
このメモリー・ブロックを役割ごとにまとめた論理的な単位をメモリー・プールと
呼び、利用の目的、揮発性、使用量増加時の制約などの共通の属性が定義さ
れています。
©2012 IBM Corporation
- 10. 5. DB2 ってどうやってメモリーの管理方法してる?
参考:DB2 のメモリー管理
1.概要
http://www.ibm.com/support/docview.wss?uid=swg21620781
2.各メモリー・セットの役割
http://www.ibm.com/support/docview.wss?uid=swg21620786
3.各メモリー・プールの役割
http://www.ibm.com/support/docview.wss?uid=swg21620787
©2012 IBM Corporation