株式会社インサイトテクノロジー 発行
http://www.insight-tec.com
┏┏┏┏┏━━━━━━━━━━━━━━━━━━━━━━━━…・・ ┏━
┏┏┏┏┛ 2001.08.08 ┏┛┛
┏┏┏┛ ☆おら!オラ!Oracle -どっぷり検証生活-★ ┏┛┛┛
┏┏┛ ┏┛┛┛┛
┏┛・・…━━━━━━━━━━━━━━━━Vol.68━…・・ ┏┛┛┛┛┛
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆ 来週のメルマガはお休み! ◆
◇ ~~~~~~~~~~~~~~~~~~~~~~~~ ◇
●≫≫≫≫≫≫ 8月15日はお盆のため休刊いたします。 ≪≪≪≪≪≪●
◇ 悪しからずご了承のほど、よろしくお願いいたします。 ◇
◆ 次回の配信は8月22日になります。 ◆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
■□注意事項□■
本文中にテーブルが含まれていますので、お読みになる際はMSゴシッ
ク等、等幅フォントをお使いただくことをお勧めします。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 Oracle 検証生活 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
< REDOログに関する検証 その6 > ペンネーム つけまい
--- 内部構造を理解し
パフォーマンスの向上に役立てる ---
前回は、DUMPコマンドを用いて、実際のREDOログ・ファイルの中身を覗いてみ
た。
今回は、DUMP中の重要な部分について、もう少し詳しく解説を行う。
************** DUMPの解説 ***************
REDOログ・ファイルのDUMP
http://www.insight-tec.com/jp/html/ora3/reference/ref67_02.html
上記のDUMPは、以下のトランザクション処理部分のみのDUMPデータを抜粋した
ものである。
---------- SQL文 ----------
DESC WORK03
名前 NULL? タイプ
------------------------------- -------- ----
EMPNO NUMBER(4)
ENAME VARCHAR2(6)
ADDRESS VARCHAR2(12)
JOB VARCHAR2(8)
MGR NUMBER(4)
SAL NUMBER(7)
COMM NUMBER(7)
DEPTNO NUMBER(2)
※ EMPNOにはインデックスは作成していない
UPDATE WORK03
SET ENAME = 'haneda'
WHERE EMPNO = 1001 ;
1行が更新されました。
COMMIT ;
コミットが完了しました。
---------------------------
上記のトランザクションを実行すると、以下の1〜4に対する変更を記録した
4つのチェンジベクターが生成される。
1.ロールバックセグメントのトランザクション表
(ロールバックセグメントのセグメントヘッダー内に存在している)
2.ロールバックセグメントのデータブロック
3.テーブルWORK03のブロック
4.コミット情報
それでは、各チェンジベクターが、それぞれどのような関連を持っているのか
を見てみよう。
----------------------------------------------------------------------
・行3のDBAは、トランザクション表が存在するディスク上の位置を指したアド
レスである。
・行5のubaは、ロールバックセグメントのデータブロックが存在するアドレス
である。したがって、行6のロールバックセグメントのデータブロックが存在
するアドレスDBAと同じはずである。
・行18のbdba及びhdbaは、テーブルWORK03のデータブロック及びヘッダーブロッ
クが存在するアドレスである。したがって、行27のテーブルWORK03のデータ
ブロック及びヘッダーブロックが存在するアドレスbdba及びhdbaと同じはず
である。
・行20、29のslotは、ブロック中の何レコード目に存在するかを表したもので
ある。したがって、これらの値は同じはずである。このトランザクションの
EMPNO=1001は、テーブルWORK03中の1レコード目に存在するので、ここには0
が入っている(5レコード目は4)。
・行21、30のsizeは、更新前と更新後のデータ長の差分を表したものである。
このトランザクションは、ENAMEをnaritaからhanedaに変更しており、データ
長は共に6バイトなので、それぞれに0が入っている。もし仮に、6バイトから
5バイトに変更した場合、行21には1が入り、行30には-1が入ることになる。
・行22、31のcolは、テーブル中の何カラム目かを表したものである。したがっ
て、これらの値は同じはずである。項目ENAMEは、テーブルWORK03中の2番目
に位置するので、ここには1が入る。
・行22、31の[ 6 ]は、実際に格納されるデータのバイト長を表したものである。
・行22、31の【6e 61 72 69 74 61】及び【68 61 6e 65 64 61】は、実際に格
納されるデータをキャラクタコードで表したものである。
行22の【6e 61 72 69 74 61】は、更新前の旧データであるnaritaを、
行31の【68 61 6e 65 64 61】は、更新後の新データであるhanedaをそれぞれ
意味している。
・行23のDBAは、テーブルWORK03中の、トランザクションの対象となるデータが
格納されているブロックのアドレスである。したがって、行18、27のbdbaと
同じはずである。
・行26のubaは、トランザクションのUNDOデータが格納されているブロックのア
ドレスである。したがって、行6のDBAと同じはずである。
・行35のDBAは、コミット情報をトランザクション表に書き出した際のアドレス
である。したがって、行3のDBAと同じはずである。
・行37のubaは、コミットの対象となるロールバックセグメントのデータブロッ
クが存在するアドレスである。したがって、行6のDBAと同じはずである。
----------------------------------------------------------------------
この辺の情報は、Oracle8iからの新機能であるログマイナーの方が見やすいだろう。
ログマイナーに関しては、別の機会で検証する予定である。
次回は、REDOログに関する統計情報についての解説を行う。
以上 猛暑も一休みの茅ヶ崎にて
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 QAコーナー 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
☆★Question1★☆
バックアップモードになっているファイルに対する更新を行った時のREDOログ
についてです。
SQL> alter tablespace users begin backup ;
上記のコマンドを実行すると、その表領域中のファイルはバックアップモード
になります。この状態のファイルに対して更新を行った時に、REDOログ量が増
えると思いますが、どのくらい増えるのか、また、なぜ増えるのかをお教え下
さい。
人から聞いた話では、「ブロックの更新前イメージを全てREDOに吐き出す」か
ららしいのですが、本当なのでしょうか?
本当だとしたら、イメージとは物理的なイメージ(ブロック丸ごと)なのでしょ
うか?それとも論理的なイメージなのでしょうか?
☆★Answer★☆
通常は、更新処理で生成されるREDO情報はレコード単位ですが、オンラインバッ
クアップの実行最中であると、Oracleのデータブロック単位でブロックのビフォ
アイメージを生成する必要があります。このような処理が必要になる理由は、
Oracleはデータブロック単位でデータを変更するのに対し、OSのコピーなどOracle
のデータブロック単位とは無関係に(つまりOSのブロック単位で)コピーしていく
ため、データブロックのバージョン番号に不整合が生じる可能性があるからです。
正常なブロックの状態に戻すようにするにはこのようにレコード単位ではな
く、データブロック単位でブロックのビフォアイメージが必要になります。
この内容に関しては、Oracle 8iからの新機能である「ログマイナー」で具体的に
検証する予定です。
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 QAについて 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
<皆様からのQAを受付けております>
皆様のQAにはできるだけ、お答えしたいと思っています。
すべてのQAにお答えすることはできないかもしれませんが、
適宜メルマガ内でとりあげていく予定ですので、是非QAをお寄せください。
┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 編集者より 】 ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
最近、すごく涼しいですよね。過ごしやすい毎日なんですけど・・・。でも
相変わらず、会社の中は極寒なんですよ・・。体がついていけてない気が最
近しないでも・・。風邪はひいてないんですけど、かなり体がダルダルなん
ですよね。これがもしかして、噂の冷房病ですかね??せっかくの休みを楽
しめるように、皆さんも体には十分気をつけて下さいねーっ! by TI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録・解除は以下のURLで行うことができます。
http://www.insight-tec.com/jp/html/ora3/ora3.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<おら!オラ!Oracle−どっぷり検証生活−>
発行/編集:株式会社インサイトテクノロジー
http://www.insight-tec.com
マガジンID:0000030093
本メールマガジンに掲載された記事を許可なく転載することを禁じます。
Copyright (c) 1996-2001, Insight Technology, Inc. All rights reserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━