Insight Technology, Inc

インサイトテクノロジー

Japanese | English

株式会社インサイトテクノロジー 発行
http://www.insight-tec.com/jp/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Vol.50
   ☆★☆  おら!オラ! Oracle −どっぷり検証生活− ☆★☆
                             2001.04.04
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<<目次>>
■Oracle検証生活・・・ロールバック・セグメントに関する検証 その6
■お知らせ・・・○Oracle管理ツール Performance Insight
		○SQeeLのご案内		○連載情報
		○書籍ご購入受付中	○QAについて
■編集者より(UA引退)

■■注意事項!!■■
本文中にテーブルが含まれていますので、お読みになる際はMSゴシック等、
等幅フォントをお使いただくことをお勧めします。

★本日の検証生活にはダンプリストが含まれています。
 ダンプリストは1行あたりが長いため、メールソフトによっては
 見づらいかもしれません。悪しからずご了承ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle検証生活 ▼━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
〜ロールバック・セグメントに関する検証 その6〜
ペンネーム ちゃむ

前回は、トランザクション表(TRN TBL)の実態をブロックダンプより確認した。

今回は、トランザクション表、ロールバック・セグメントのデータブロック
(undoブロック)、表などのデータブロック中に存在するITL
(INTERESTED TRANSACTION LIST)の関係に迫ってみる。

トランザクション表とUNDO BLOCKは、今まで見てきたのでわかると思うが、
ITLとはなんであろうか?
例えば、表のデータなどを更新した後、他のセッション等から、そのデータブ
ロックを取得するSELECT文を発行したときに、コミット前であれば読み取り一
貫性を実現するために、更新前の情報、つまりロールバック・セグメントに格
納してあるUNDOブロック情報を取得する必要がある。だから、このITLには、
トランザクション表とUNDOブロックの場所を識別するための情報が格納される。

また、実際に「ROLLBACK ;」のコマンドが発行されたときも、このITLの情報を
もとにUNDOブロックの場所を特定して、更新前の値に戻すことができる。

このあたりの内容は、ロックとも非常に関連が深いが、ロックに関する詳しい
内容は、別の機会で検証しようと思う。

関係図を以下のURLに示す。

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

-----------------------テーブルのデータブロックダンプの抜粋(ダンプ1)-----------------------
Start dump data blocks tsn: 3 file#: 4 minblk 61826 maxblk 61826
buffer tsn: 3 rdba: 0x0100f182 (4/61826)
scn: 0x0000.00ed6bc1 seq: 0x0c flg: 0x00 tail: 0x6bc1060c
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
 
Block header dump:  0x0100f182
 Object id on Block? Y
 seg/obj: 0x1548  csc: 0x00.ed6b7a  itc: 1  flg: O  typ: 1 - DATA
     fsl: 0  fnx: 0x0 ver: 0x01
 
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   xid:  0x0009.000.0000005b    uba: 0x00800298.010d.0c  ----   12  fsc 0x000c.00000000
 ---------------------------------------------------------------------------------------------

上記ダンプ1のXid=0x0009.000.0000005b (16進数で表現されている)は、
左から順に、「ロールバック・セグメントの番号」、「スロット番号」、「順序番号」
であるが、下記ダンプ2のstate=10のindex=「スロット番号」、wrap#=「順序番号」
に一致する。
「ロールバック・セグメントの番号」は、
set transaction use rollback segment rb_find50 ;で指定したロールバック・
セグメントなので、以下のSQL文の結果のSEGMENT_IDの値と一致する。

SQL> select segment_id from DBA_ROLLBACK_SEGS where segment_name = 'RB_FIND50' ;

SEGMENT_ID
----------
         9 ← Xid=0x0009と一致する

上記ダンプ1のUba=0x00800298は、
下記ダンプ2のTRN TBLのdba=0x00800298に一致する。

上記ダンプ1のscn: 0x0000.00ed6bc1は、
下記ダンプ2のTRN TBLのscn=0x0000.00ed6bc1に一致する。

これらより、テーブルのデータブロックのITLからロールバック・セグメントの
場所を特定できる様子がわかるであろう。つまり、これらが「読み取り一貫性」
と「ROLLBACK」を実現するための元データとなる。

-------------------トランザクション表「TRN TBL」ブロックダンプの抜粋(ダンプ2)------------------
Start dump data blocks tsn: 1 file#: 2 minblk 662 maxblk 662
buffer tsn: 1 rdba: 0x00800296 (2/662)
scn: 0x0000.00ed6bc1 seq: 0x01 flg: 0x00 tail: 0x6bc10e01
frmt: 0x02 chkval: 0x0000 type: 0x0e=KTU UNDO HEADER W/UNLIMITED EXTENTS
....................................................................................... 

 TRN TBL::
 
  index  state cflags  wrap#    uel         scn            dba            parent-xid    nub
  ------------------------------------------------------------------------------------------------
   0x00   10    0xc0  0x005b  0x0000  0x0000.00ed6bc1  0x00800298  0x0000.000.00000000  0x00000001
   0x01    9    0x00  0x005a  0x0002  0x0000.00ed6b83  0x00000000  0x0000.000.00000000  0x00000000
..................................................................................................
   0x13    9    0x00  0x005a  0x0014  0x0000.00ed6b83  0x00000000  0x0000.000.00000000  0x00000000
   0x14    9    0x00  0x005a  0xffff  0x0000.00ed6b83  0x00000000  0x0000.000.00000000  0x00000000
--------------------------------------------------------------------------------------------------

上記ダンプ1、2のxid: 0x0009.000.0000005bは、
下記ダンプ3のxid: 0x0009.000.0000005bに一致する。

上記ダンプ1、2のscnは、
下記ダンプ3のscn: 0x0000.00ed6bc1と一致する。

ダンプ3のcol  1: [ 5]  53 4d 49 54 48は、まさに更新前のカラムの値である。

------------------UNDOブロックのブロックダンプの抜粋(ダンプ3)---------------------
Start dump data blocks tsn: 1 file#: 2 minblk 664 maxblk 664
buffer tsn: 1 rdba: 0x00800298 (2/664)
scn: 0x0000.00ed6bc1 seq: 0x0d flg: 0x00 tail: 0x6bc1020d
frmt: 0x02 chkval: 0x0000 type: 0x02=KTU UNDO BLOCK

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

UNDO BLK:  
xid: 0x0009.000.0000005b  seq: 0x10d cnt: 0xc   irb: 0xc   icl: 0x0   flg: 0x0000
 
 Rec Offset      Rec Offset      Rec Offset      Rec Offset      Rec Offset
---------------------------------------------------------------------------
0x01 0x077c     0x02 0x0720     0x03 0x06c8     0x04 0x066c     0x05 0x0610     
0x06 0x05b4     0x07 0x0558     0x08 0x0500     0x09 0x04a4     0x0a 0x0448     
0x0b 0x03f0     0x0c 0x0394     
 
*-----------------------------
* Rec #0x1  slt: 0x00  objn: 5448(0x00001548)  objd: 5448  tblspc: 3(0x00000003)
*       Layer:  11 (Row)   opc: 1   rci 0x00   
Undo type:  Regular undo    Begin trans    Last buffer split:  No 
Temp Object:  No 
Tablespace Undo:  No 
rdba: 0x00000000
*-----------------------------
uba: 0x00000000.0000.00 ctl max scn: 0x0000.00ed6b83 prv tx scn: 0x0000.00ed6b83
KDO undo record:
KTB Redo 
op: 0x03  ver: 0x01  
op: Z
KDO Op code: URP  xtype: XA  bdba: 0x0100f182  hdba: 0x0100f181
itli: 1  ispac: 0  maxfr: 1177
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 8 nnew: 1 size: 1
col  1: [ 5]  53 4d 49 54 48
-------------------------------------------------------------------------------------

今回の内容は、ダンプばかりではあったが、これらの関係をしっかり抑えるこ
とで、より深くトランザクションの仕組みが理解できるはずである。

次回は、読み取り一貫性の仕組みについて、これらの知識を踏まえて説明する。



以上  BOSEのスピーカーっていい音出るよね。 茅ヶ崎にて


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

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

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

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

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

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

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

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

http://www.SQeeL.org/

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

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

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

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

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

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

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

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

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 編集者より ▼━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
早いもので、このメルマガも創刊1周年!50号を迎えることができました。
さて、1年間このコーナーでとりとめもないことを書き綴ってきましたが、
ちょうど節目ということもあり、今回を持ちまして後輩にバトンタッチさせ
ていただくことになりました。今まで本当にありがとうございました。今後
とも当メルマガをよろしくお願いいたします。		  by UA

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録・解除は以下のURLで行うことができます。
http://www.insight-tec.com/jp/em/mail_magazine.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<おら!オラ!Oracle−どっぷり検証生活−>
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com/jp

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

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