Insight Technology, Inc

インサイトテクノロジー

Japanese | English

株式会社インサイトテクノロジー 発行
http://www.insight-tec.com

・;*;・゜’★,。・*;・゜’♪☆。・;*;゜’♪★。・;*;゜’☆   ●●●●
●                                                      Vol.55 ●●●
●●          おら!オラ!Oracle  −どっぷり検証生活−           ●●
●●●                                         ☆       2001.05.09 ●
●●●●☆。・;*;・゜’★,。・*;・゜’♪☆。・;*;゜’♪★。・;*;゜;♪

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆                  ついに?!英語版メルマガ近日配信!           ◆
◇                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~            ◇
●≫≫≫≫≫≫≫≫≫≫≫≫≫≫  祝  ≪≪≪≪≪≪≪≪≪≪≪≪≪≪≪●
◇      大好評のメルマガがついに、皆様のご要望にお答えします!    ◇
◆                     さらに見やすく、HTML形式!                 ◆
◇               比べて学べる英語版メルマガ乞うご期待♪           ◇
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

◎●  I┃ N┃ D┃ E┃ X┃!┃◎●
   ━┛━┛━┛━┛━┛━┛

┏━━━━━━━━━━━┓
┃★ Oracle検証生活 ★  ━━━━━━━━━━━━━━━━━━━━━━┓
┣━━━━━━━━━━━┛
┃
┣○ 【 ロ ッ ク に 関 す る 検 証   そ の 2 】
┃
┣━━━━━━━━━━━┓
┃★  製 品 情 報   ★  ━━━━━━━━━━━━━━━━━━━━━…
┣━━━━━━━━━━━┛
┃
┣○ 【 Oracle管理ツール Performance Insight 】
┃    国内3500ライセンスの販売実績を誇る最強のチューニングツール
┃
┣━● 【 Performance Insight3 Release 3.2.1.2 】
┃      新しく PI 3.2.1.2 が出荷
┣━● 【 Linux版 Performance Insight 】
┃      リリース予定
┃
┣○ 【 SQeeL(スキール)】
┃    WEBに適した新言語 ⇒ SQeeL!(オープンソースのフリーウェア)
┃
┣━━━━━━━━━━━┓
┃★  INFORMATION   ★  ━━━━━━━━━━━━━━━━━━━━━…
┣━━━━━━━━━━━┛
┃
┣○ 【 連載情報 】
┣○ 【 書籍のご案内 】
┣○ 【 QAについて 】
┣○ 【 編集者より 】
┣○ 【 解 除 の 方 法 】
┃  http://www.insight-tec.com/jp/html/ora3/ora3.html
┃  解除手続きは上記のURLよりお願い致します。原則として当方での解除
┃  は行っておりません、ご了承の程お願い申し上げます。
┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━…
┃
┣○  【 注意事項 】
┃    本文中にテーブルが含まれていますので、お読みになる際はMSゴシッ
┃    ク等、等幅フォントをお使いただくことをお勧めします。
┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□■ Oracle検証生活 □■÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
〜ロックに関する検証 その2〜
ペンネーム ちゃむ

前回は、ロックの重要性などを説明した。
今回は、ロックが悪さをする場合について説明しようと思う。

悪さというと少し語弊があるかもしれないが、例えば、以下のように行ロック
待ちになるようなSQL文を発行してみる。

**********************************************************************

セッションA
SQL> UPDATE A SET ENAME = 'OSMAU';

12行が更新されました。

セッションB
SQL> UPDATE A SET ENAME = 'OSMAU';
「待たされているよ〜〜〜〜〜〜〜〜〜〜」

**********************************************************************

この時の、V$LOCKの様子は以下の通りである。

**********************************************************************

SQL> SELECT SID,TYPE,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK FROM V$LOCK
     WHERE TYPE IN ('TM','TX') ;

      SID TY       ID1       ID2     LMODE   REQUEST     CTIME     BLOCK
--------- -- --------- --------- --------- --------- --------- ---------
        8 TX    589835       111         6         0       314         1
        8 TM      5526         0         3         0       314         0
       11 TM      5526         0         3         0       298         0
       11 TX    589835       111         0         6       298         0

**********************************************************************

これは、SID(セッションID)=11がSID=8に待たされていることを示めす。REQUEST
にO以外の数字が入っているものがロックを獲得できずに待たされているもの、
LMODEにO以外の数字が入っているものがロックを獲得しているものを示す。
LMODE,REQUESTの数字の意味については、前回のV$LOCKの項目説明のURLを参照して
ほしい。

http://www.insight-tec.com/html/reference/ref54_01.html

さらに、BLOCK=1からも、「こいつが待たせている原因のロック」ということが
わかる。ここでのBLOCK列の意味は、「オラクルブロック」の意味ではなく、
「障害」という意味であろう。

この例ではデータを保護しているだけで、「悪さをしている」とは言えないが、
例えば、処理が終わっているのに、いつまでもSID=8のロックを解放しないよう
なときを、今回は「悪さをしている」と表現している。

では、「悪さをしている」状態を再現してみよう。

その前に、通常はSQL*PLUSで接続するとpsコマンドで以下のように、親プロセ
スと子プロセスを確認できる。

**********************************************************************

$ ps -ef | grep 13277
     UID   PID  PPID  C    STIME TTY      TIME CMD
  ora803 17711 17172  1 15:54:04 pts/7    0:00 grep 13277
  ora803 13277 28182  0 15:32:00 pts/6    0:01 sqlplus sys/manager
  ora803 13280 13277  0 15:32:03 ?        0:02 oracleora803 (DESCRIPTION=
  (LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

**********************************************************************

以下に項目の説明を記述する(OSコマンドmanより)。

UID    プロセス所有者のユーザ ID 番号
PID    プロセスのプロセス ID(このデータはプロセスを停止させるために必要)
PPID   親プロセスのプロセス ID
C      スケジューリングのためのプロセッサ利用率(旧式)
       -c オプションを使用した場合は出力されません
STIME  時間、分、秒で示されるプロセスの開始時間(ps が実行される 24 時
       間以上前に開始したプロセスは、月および日で示されます)
TTY    プロセスを制御している端末(制御端末がない場合は、メッセージ ?
       が出力)
TIME   プロセスの累積実行時間
CMD    コマンド名(-f オプションでは、完全なコマンド名と引数を最大 80
       文字まで出力)

sqlplus sys/manager は oracleora803 (DESCRIPTION=(LOCAL=YES)...の親プロ
セスである。

通常、親プロセスをKillすると子プロセスもkillされるが、「悪さをしている」
状態というのは、親プロセスがkillされたときに子プロセスが残ってしまう状態
である。

<再現手順>

1.teratermにOSユーザーでログイン
2.sqlplusよりscottで、update a set ename = 'OSAMU';を実行
3.!を入力して、再度sqlplusによりupdate a set ename = 'OSAMU';を実行
    この時点でこのupdate文はロック待ちになる。

**********************************************************************

SQL> SELECT SID,TYPE,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK FROM V$LOCK
     WHERE TYPE IN ('TM','TX');

       SID TY        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
---------- -- ---------- ---------- ---------- ---------- ---------- ----------
         7 TM      20201          0          3          0    1347369          0
         7 TX     327698       5948          0          6    1347369          0
         9 TX     327698       5948          6          0    1347378          1
         9 TM      20201          0          3          0    1347378          0

**********************************************************************

4.この状態でteratermのウインドウを強制終了(右上の×ボタンを押す)さ
    せると、以下のようなプロセスが確認できる。

**********************************************************************

$ ps -ef | grep oracleora803
  ora803  3380     1  0   4月 17 ?        0:01 oracleora803 (DESCRIPTION=(LOCAL=YES)
(ADDRESS=(PROTOCOL=beq)))
  ora803  3383     1  0   4月 17 ?        0:04 oracleora803 (DESCRIPTION=(LOCAL=YES)
(ADDRESS=(PROTOCOL=beq)))
  ora803 23372 22541  1 10:38:55 pts/4    0:00 grep oracleora803

**********************************************************************

親プロセスIDが1になっている子プロセスは、親なしプロセスである。

今回は、意図的に発生させたので原因は明白であるが、以下のSQL文を用いて、
待たせている原因のセッション情報やSQL文などが確認できる。

**********************************************************************

SQL>SELECT SES.SID,SES.SERIAL#,SES.TERMINAL,SES.PROGRAM,SES.OSUSER,SES.USERNAME,
    SES.MACHINE,SQL.SQL_TEXT
    FROM V$SESSION SES ,V$SQL  SQL
    WHERE  SES.SQL_ADDRESS=SQL.ADDRESS AND 
    SID IN (SELECT SID FROM V$LOCK WHERE BLOCK = 1);

      SID    SERIAL# TERMINAL   PROGRAM                   OSUSER   USERNAME MACHI
--------- ---------- ---------- ------------------------- -------- -------- -----
SQL_TEXT
----------------------------------------------------------------------------------
       9        896  pts/2      sqlplus@sol (TNS V1-V3)   ora803   SCOTT    sol
 UPDATE A SET ENAME = 'OSAMU'

**********************************************************************

では、上記の SID、SERIAL#を用いて、Oracleのコマンドでセッションを切って
みよう。

**********************************************************************

SQL>ALTER SYSTEM KILL SESSION '9,896';

**********************************************************************

この後、V$LOCKを確認してみると以下のようにデータが検索されなくなるが、
これはロックが解放されたことを示す。

**********************************************************************

SQL>SELECT SID,TYPE,ID1,ID2,LMODE,REQUEST,CTIME,BLOCK FROM V$LOCK
    WHERE TYPE IN ('TM','TX');

レコードが選択されませんでした。

**********************************************************************

psコマンドでも以下の通りである。これで、正常な状態に戻ったといえる。

**********************************************************************

$ ps -ef | grep oracleora803
  ora803   160 21744  1 11:13:39 pts/4    0:00 grep oracleora803

**********************************************************************

ロックが「悪さをしている」状態というのは、強制終了などを行なったときに
発生する場合が多い。
以前、エンドユーザがクライアントからデータを更新中に、誤ってPCのコン
セントを足でひっこ抜いてしまい、サーバ側にセッションが残っていてロック
を取得したままだったというような現象が起きたこともある。

おかしなセッションの状況を確認したら、ALTER SYSTEM KILL SESSIONか、
OSコマンドのkillで対応しよう。

以上 ロックちゃん 茅ヶ崎にて

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

↓発進!茅ヶ崎移住計画↓
http://www.insight-tec.com/jp/html/company/career.html 

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■□ Oracle 管理ツール Performance Insight ■□÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Oracleを知り尽くしたメンバーが開発したOracleパフォーマンス監視ツール
の決定版。それがPerformance Insightです。インサイトテクノロジーの技術
者の知恵とノウハウがここに結集!
パフォーマンス監視だけでなくOracleを使用しているシステムの運用、管理、
そして開発にも役立つ機能がいっぱいです。
詳しくは以下のURLをご覧ください。

http://www.insight-tec.com/jp/html/products/products.html

また無料で試使用することも可能です。
是非お問い合わせください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□■ Performance Insight3 Release 3.2.1.2(Patchリリース) ■□÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Performance Insight3 Release 3.2.1に最新パッチがリリースされました。

●代表的な修正
  
 #3210010 
   分散ジョブ実行でhosts.lstにHOST名以外が指定された場合に自
   ホストに送信してしまい、キューイングが正常に行われない
 #3210011 
   Web Admin Tools のファイル内容表示でファイルが無い場合と
   ファイルサイズが空の場合とで区別がつかなかった
 #3210012 
   RefreshCheck.subがOracle7.3.xで正常動作していなかった
 #3210013 
   システムのOPTIMIZER_MODEがCHOOSE以外の場合、ロギングや、
   監視ジョブ・DBScope・Dspツールで時間がかかる処理があった
 #3210014 
   ヘルプセンタのヘルプ項目・検索キー項目拡充・属性追加
 #3210015 
  「IST-02013:Shared Pool Area Usage」で'free memory + sql 
   area'の値が'shared_pool_size'を超えている
 #3210016 
   レポートの作成を繰り返すと同じファイル名がレポート一覧に表
   示される
 #3210017 
  「IST-03005:ネットワーク衝突」で空行が連続出力される
 #3210018 
  「IST-01033:LOG_BUFFERを増やしてください」が二度出力され、
   推奨サイズが512バイト単位になっていなかった
 #3210019 
  「IST-02015:Java Pool Area Usage」を新規追加
 #3210020 
   メール転送の環境変数の更新設定が正常に行われない場合があった
 #3210021 
  「IST-05118,IST-05119」でヘッダのみが出力される場合があった
 #3210022 
   監視ジョブ:LockWaitCheck.subのSQL文改良

詳しくは、以下のURLまで:
http://www.insight-tec.com/jp/html/products/release.html
PatchのダウンロードはSupport Deskで行ってください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■□ Linux版 Performance Insight■□÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Performance Insight の Linux版がリリースされる事になりました!
現在、5月末リリースに向けてテスト評価進行中です。

なお対応OSとしてましては、Miracle Linux、RedHat 6.2を予定しています。
Oracle の対応バージョンとしましては、8.1.6 と 8.1.7でただいまテスト
中です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□■ SQeeLのご案内  □■÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<プログラマ待望の言語SQeeL>
●手軽に使える、速い、そしてWEBに適した新言語SQeeL!

フリーソフトSQeeLは、以下のURLより好評ダウンロード中!
既に多くの方々にご利用いただいております。
あなたもSQeeLの世界を体験してみませんか?

http://www.SQeeL.org/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■□ 連載情報 ■□÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<雑誌連載>
Oracleのエキスパートとして定評のある弊社のスタッフが執筆しております
連載記事に関してご紹介しています。
現在「DB Magazine」に、Oracleビギナー向け連載が掲載されています。
5月号が発売中ですので、是非ご覧下さい。

http://www.insight-tec.com/jp/html/topics/magazine.html
上記のURLでタイトルがご覧になれます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□■ 書籍ご案内 □■÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<送料無料でお届けします>
1.「Oracle8 プロフェッショナルテクニック」
弊社のHPよりお申し込みいただいた方に限り、送料無料でお届けします。
専門書としては異例の速さで増刷が決定するほどの好評をいただいている
「Oracle8 プロフェッショナルテクニック」をぜひご活用ください。

2.「Oracleデータベース管理を極める13章」
「DB Magazine」に連載され大好評だった「体験的・DBAのお仕事」が
加筆され書籍化された同書は、おかげさまで発売以来3ヶ月足らずで第3刷
となりました。

好評につき、キャンペーンを拡大いたしました!上記の書籍はいずれも
消費税サービス+送料無料、つまり本体価格のみでご購入いただけます。
この機会をお見逃し無く。

さらに書籍をお買い上げいただいた方にはもれなく「Oracleの知恵袋」進呈中!
数に限りがございますので、在庫がなくなり次第終了とさせていただきます。
お早めに!

書籍ご購入のお申し込みは以下のURLより受付中!

http://www.insight-tec.com/jp/html/topics/books.html

<Oracleパーフェクトチューニングセミナー>
●6月にPerformance Insightを用いたチューニング手法を、余す所なく披露
しようと予定中です!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■□ QAについて ■□÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<皆様からのQAを受付けております>
皆様のQAにはできるだけ、お答えしたいと思っています。
すべてのQAにお答えすることはできないかもしれませんが、
適宜メルマガ内でとりあげていく予定ですので、是非QAをお寄せください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□■ 編集者より □■÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
本当にお待たせしましたー。ついに出ますよっ!メルマガ英語版!皆様の応
援が無かったら、ここまで出来ませんでしたぁー。本当にありがとうござい
ましたっ!!って、まだ配信されてないんですよね・・・。でも本当に近々
配信される予定なので、もうしばらくお待ち下さいね!           by TI

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<おら!オラ!Oracle−どっぷり検証生活−>
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com

マガジンID:0000030093
本メールマガジンに掲載された記事を許可なく転載することを禁じます。
Copyright (c) 1996-2001 , Insight Technology, Inc. All rights reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

 

 メールマガジン登録/解除