株式会社インサイトテクノロジー 発行
http://www.insight-tec.com/jp/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Vol.49
☆★☆ おら!オラ! Oracle −どっぷり検証生活− ☆★☆
2001.03.28
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<<目次>>
■Oracle検証生活・・・ロールバック・セグメントに関する検証 その5
■お知らせ・・・○Oracle管理ツール Performance Insight
○SQeeLのご案内 ○連載情報
○書籍ご購入受付中 ○QAについて
■編集者より
■■注意事項!!■■
本文中にテーブルが含まれていますので、お読みになる際はMSゴシック等、
等幅フォントをお使いただくことをお勧めします。
★本日の検証生活にはダンプリストが含まれています。
ダンプリストは1行あたりが長いため、メールソフトによっては
見づらいかもしれません。悪しからずご了承ください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ Oracle検証生活 ▼━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
検証生活
〜ロールバックセグメントに関する検証 その5 〜
ペンネーム ちゃむ
前回は、2.TRANSACTIONS_PER_ROLLBACK_SEGMENTで指定した数だけ、各ロール
バック・セグメントで同時トランザクションを処理できるのかどうかに関して
の検証を行った。
今回は、前回のエラーの内容
「ORA-1554 トランザクション表にトランザクション・スロットがありません。」
に関して迫ってみる。
(以下の検証は、NT版 Oracle8.1.6 DB_BLOCK_SIZE=2Kの環境で行なった)
そもそも、トランザクション表とは何のことなのだろうか?
トランザクション表は、ロールバック・セグメントのセグメント・ヘッダーの
中に存在している。そこに、トランザクション情報を確保している。例えば、
UPDATE文などの更新処理が行われる際、更新前情報をロールバック・セグメント
に格納するが、まず始めにトランザクション表を更新する。
では、実際にトランザクション表を見てみよう。
前回、rbs_find50というロールバック・セグメントに、21個の同時トランザク
ションをエントリさせたが、その時の様子をブロック・ダンプで見てみよう。
セグメント・ヘッダーに存在するのだから、DBA_SEGMENTSのHEADER_FILE列と、
HEADER_BLOCK列で場所を確認できる。
SQL> col SEGMENT_NAME format a15
SQL> SELECT SEGMENT_NAME , HEADER_FILE , HEADER_BLOCK FROM DBA_SEGMENTS
WHERE SEGMENT_NAME = 'RB_FIND50' ;
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
--------------- ----------- ------------
RB_FIND50 16 537
この情報を元にブロック・ダンプを取得する。これは、同時トランザクション
が発生している最中に取得したものである。
(初期化パラメータuser_dump_destで指定された場所に出力される)
ALTER SYSTEM DUMP DATAFILE 16 BLOCK 537 ;
以下はトランザクション表(TRN TBL)を抜粋したもの
TRN TBL
index state cflags wrap# uel scn dba parent-xid nub
------------------------------------------------------------------------------------------------
0x00 10 0xc0 0x0023 0x0000 0x0000.00ebcf59 0x0400021e 0x0000.000.00000000 0x00000001
0x01 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x0400021e 0x0000.000.00000000 0x00000001
0x02 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x0400021d 0x0000.000.00000000 0x00000001
0x03 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x0400021c 0x0000.000.00000000 0x00000001
0x04 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x0400021f 0x0000.000.00000000 0x00000001
0x05 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x04000220 0x0000.000.00000000 0x00000001
0x06 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x04000221 0x0000.000.00000000 0x00000001
0x07 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x04000223 0x0000.000.00000000 0x00000001
0x08 10 0xc0 0x0023 0x0000 0x0000.00ebcf5a 0x04000222 0x0000.000.00000000 0x00000001
0x09 10 0xc0 0x0023 0x0000 0x0000.00ebcf5d 0x04000224 0x0000.000.00000000 0x00000001
0x0a 10 0xc0 0x0022 0x0001 0x0000.00ebcf57 0x00800229 0x0000.000.00000000 0x00000001
0x0b 10 0xc0 0x0022 0x0001 0x0000.00ebcf58 0x0080022c 0x0000.000.00000000 0x00000001
0x0c 10 0xc0 0x0022 0x0001 0x0000.00ebcf59 0x0080022d 0x0000.000.00000000 0x00000001
0x0d 10 0xc0 0x0022 0x0001 0x0000.00ebcf57 0x00800228 0x0000.000.00000000 0x00000001
0x0e 10 0xc0 0x0022 0x0001 0x0000.00ebcf57 0x0080022a 0x0000.000.00000000 0x00000001
0x0f 10 0xc0 0x0022 0x0001 0x0000.00ebcf59 0x0080022e 0x0000.000.00000000 0x00000001
0x10 10 0xc0 0x0022 0x0000 0x0000.00ebcf59 0x0400021a 0x0000.000.00000000 0x00000001
0x11 10 0xc0 0x0022 0x0001 0x0000.00ebcf57 0x0080022b 0x0000.000.00000000 0x00000001
0x12 10 0xc0 0x0022 0x0001 0x0000.00ebcf59 0x00800231 0x0000.000.00000000 0x00000001
0x13 10 0xc0 0x0022 0x0001 0x0000.00ebcf59 0x00800230 0x0000.000.00000000 0x00000001
0x14 10 0xc0 0x0022 0x0001 0x0000.00ebcf59 0x0080022f 0x0000.000.00000000 0x00000001
まず、この行数を数えてほしい。21行というのが確認できるはずである。この
21行のトランザクション表のデータ数は、1つのロールバック・セグメントで扱
える同時トランザクション数と一致する。
つまりは、TRANSACTIONS_PER_ROLLBACK_SEGMENTがMAXで21までしか設定できな
い原因と言えないだろうか?
以下に、各項目の意味を示す。
index → v$transactionのXIDSLOT列に一致(スロット番号)
state → トランザクションがアクティブのときに9から10に変わる
wrap# → v$transactionのXIDSQN列に一致(順序番号)
cflags → そのスロットが使用された後、0x00から0xc0に変わるが詳しいことはわからない
uel → これに関しても詳しいことはわからない
scn → SCN(System Change Number)システム変更番号
dba → undoブロックのdba(data block address)を示す
parent-xid → パラレルDMLのときに使用される親トランザクション番号
パラレルDMLを使用しないときは、0x0000.000.00000000が格納される
nub → v$transactionのUSED_UBLK列に一致
(使用されたロールバック・セグメントのブロック数)
最後に、dbaがロールバック・セグメントのdba、つまりudaであることを証明す
るSQL文を実行してみよう。
上記のトランザクション表中の1行目の16進数のdbaである「0x0400021e」を、
10進数に変換すると67109406となる。これを用いて以下のSQL文を実行すると、
ロールバック・セグメントのdbaということがわかる。
SELECT SEGMENT_NAME,SEGMENT_TYPE FROM DBA_EXTENTS
WHERE FILE_ID= DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(67109406)
AND DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(67109406) BETWEEN
BLOCK_ID AND BLOCK_ID+BLOCKS ;
SEGMENT_NAME SEGMENT_TYPE
-----------------------------
RB_FIND50 ROLLBACK
ちなみに、DATA_BLOCK_ADDRESS_FILE、DATA_BLOCK_ADDRESS_BLOCKはそれぞれ、
dbaからファイル番号とブロック番号を求めるためのファンクションである。
以上 養命酒は、結構アルコール濃度 高いのね 茅ヶ崎にて
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
↓発進!茅ヶ崎移住計画↓
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をお寄せください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼ 編集者より ▼━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
現在事業が拡大中のため、人材を求めています。わたしたちと一緒にお仕事
しませんか?職場の雰囲気は明るいですよ。OOWでブースに来てくれた人なら
きっと実感できると思うんだけど....。ご応募お待ちしています。 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.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━