Insight Technology, Inc

インサイトテクノロジー

Japanese | English


┏┏┏┏┏━━━━━━━━━━━━━━━━━━━━━━━━…・・ ┏━
┏┏┏┏┛                                  2001.11.14         ┏┛┛
┏┏┏┛      ☆おら!オラ!Oracle  -どっぷり検証生活-★     ┏┛┛┛
┏┏┛                                                   ┏┛┛┛┛
┏┛・・…━━━━━━━━━━━━━━━━Vol.81━…・・ ┏┛┛┛┛┛

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆                  Oracle技術セミナー追加開催!                  ◆
◇                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  ◇
◆   ご要望にお応えして「パフォーマンス悪化のケーススタディ」を   ◆
◇        株式会社システムコンサルタント主催の特別セミナー        ◇
◆            において開催することが決定いたしました。            ◆
◇                 詳細とご登録は下記のURLから。                  ◇
     http://www.insight-tec.com/jp/html/topics/semi_information.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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

┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 Oracle 検証生活 】                                           ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
< ログマイナに関する検証  その弐 > ペンネーム チョビひげ

--- みてみてv$logmnr_contents ---

前回はログ・マイナーの実行手順の説明を行なった。

今回は実際にログ・マイナーを実行し、
v$logmnr_contents表に作成される内容を見てみたいと思う。

まずは簡単なUPDATE文を実行して、ログ・マイナーを実行してみよう。

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

# scottユーザで実行

SQL> desc zura;

Name                                      Null?    Type
----------------------------------------- -------- -------------------
EMPNO                                     NOT NULL NUMBER(4)
ENAME                                              VARCHAR2(10)
JOB                                                VARCHAR2(9)
MGR                                                NUMBER(4)
HIREDATE                                           DATE
SAL                                                NUMBER(7,2)
COMM                                               NUMBER(7,2)
DEPTNO                                             NUMBER(2)

#1行をUPDATE
SQL> update zura set ENAME='Urashima' where ENAME='Momotaro';

SQL> commit;


# ここからsysユーザで実行
# ディクショナリ・ファイルの作成
SQL> exec dbms_logmnr_d.build(dictionary_filename=>
     'ora817dict.ora',dictionary_location=>'../u01');

# REDOログ・ファイルの登録(今回は特定のトランザクションを検証するために、
# 事前にログ・スイッチを行いアーカイブログ・ファイルを取得する)
SQL> exec dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>
     '../u01/arch0_28.dbf');

#ログ・マイナーの初期化
SQL> exec dbms_logmnr.start_logmnr(dictfilename=>
     '../u01/ora817dict.ora');

# v$logmnr_contentsより検索
SQL> select scn, data_obj#, seg_owner, seg_name, operation 
     from v$logmnr_contents;
        
SCN        DATA_OBJ#   SEG_OWNER    SEG_NAME    OPERATION
---------- ----------- ------------ ----------- ------------------
687902     0                        INTERNAL
687902     0                        START
687902     26065       SCOTT        ZURA        UPDATE
687904     0                        COMMIT

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

上記のv$logmnr_contents表を検索した結果を見てみると、UPDATEとCOMMITで4
つのオペレーション(INTERNAL,START,UPDATE,COMMIT)のREDOレコードが作成さ
れているのが分かる。

REDOログ・ファイルのダンプファイルではSCN(system change number)などが
16進数表示であったが、v$logmnr_contents表では10進数表示になっており分
かりやすくなっている。
ちなみに、SCNはデータベースになんらかの障害が発生した場合に、バックア
ップファイルとREDOログ・ファイルからPointInTime回復を実行する際に指定
する事が出来る。

次にv$logmnr_contents表よりSQL_REDO、SQL_UNDO列を検索してみよう。

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

SQL> select data_obj#, operation, sql_redo, sql_undo
     2 from v$logmnr_contents;

DATA_OBJ#  OPERATION    SQL_REDO        
---------  ------------ -----------------
0          INTERNAL                
0          START        set transaction read write;
26065      UPDATE       update "SCOTT"."ZURA" set "ENAME" = 'Urashima'
                        where ROWID = 'AAAGXRAAFAAASDHAAO';
0          COMMIT       commit;

SQL_UNDO
-----------------------------------------------------------------------

update "SCOTT"."ZURA" set "ENAME" = 'Momotaro' 
where ROWID = 'AAAGXRAAFAAASDHAAO';

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

REDO、UNDOのSQL文が確認できる。
また、ログ・マイナーの初期化の際、ディクショナリ・ファイルを指定するこ
とにより、v$logmnr_contents表内で表示されるオブジェクト名、列名等の変換
も行なわれている。

ちなみに、ディクショナリを指定しなかった場合は以下のような表示になる。

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

# sysでユーザで実行
SQL> exec dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>
     '../u01/arc0_28.trc');

# ログ・マイナーの初期化
SQL> exec dbms_logmnr.start_logmnr();

# v$logmnr_contents表を検索
SQL> select scn, seg_owner, seg_name, operation, sql_redo 
     from v$logmnr_contents;

SCN     SEG_OWNER  SEG_NAME  OPERATION  SQL_REDO
------- ---------- --------- ---------- -------------------
346635                       START      set transaction read write;
346635  UNKNOWN              UPDATE     update UNKNOWN.Objn:3825 set 
                                        Col[2] = HEXTORAW('35cfba') 
                                        where ROWID = 'AAAA7xAABAAAGTUAAA';
346637                       COMMIT     commit;

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

オブジェクトのオーナ(SEG_OWNER)が表示されず、SQL_REDO列のオブジェクトID
や列番号がそのまま表示されており、非常に分かりづらい。

REDOログ・ログファイルを分析する際は、ディクショナリを指定することによ
って、SQL_REDO列やSQL_UNDO列のSQL文がコピーアンドペーストで利用可能にな
り、分析がやり易くなっていることが分かる。

以上、きょうもへいわな茅ヶ崎にて

┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 セミナー情報 】                                              ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
<パフォーマンス悪化のケーススタディ>
Oracleデータベース・チューニングの方法論を明確にするために、チュ
ーニングポイントとなるシステムアーキテクチャの解説、さらに6つの
ケースを題材としてチューニングの基礎を徹底的に解説します。また
、当日はPerformance Insight 4 for Oracle 最新リリースの機能デモ
ンストレーションも行います。

●講師から
実は数年前に同じタイトルでセミナーを開き延べ約500名の方々にお話
をさせていただきました。予想を上回る人数に少々躊躇しておりました
が、お客様から”もう一度やって欲しい”というご意見をいただき、新
たな題材を集めております。役に立つ情報を満載したセミナーにするた
めにも、出席者の方々が抱えておりますご質問やお悩みなどの「議論の場」
となるような「会」になることを願っております。当日は、私(小幡)の他、
弊社コンサルタントも配備させますので、気兼ねなくお声を掛けてください。


題名 Oracleユーザーのための先進のパフォーマンス・運用管理ツール
   「Performance Insight for Oracle」による特別セミナー
対象 Oracle DBA
日時 2001年 11月 22日(木)14:00〜17:00
会場 日本オラクル株式会社 本社 12Fセミナールーム
定員 120名 (定員に達し次第募集を締め切らせていただきます)
主催 株式会社システムコンサルタント
地図 日本オラクル株式会社 本社 12Fセミナールーム
   http://www.oracle.co.jp/corp/office/

ご登録は下記のURLから
http://www.insight-tec.com/jp/html/topics/semi_information.html   

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

┏─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┓
●【 編集者より 】                                                ●
┗─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─━┛
最近、寒くて毎日カタカタ震えていたら・・。ついに母の許しが出て、スト
ーブが私の部屋に戻ってきたんですっ!!嬉しさのあまり、毎日ストーブの
前でぬくぬくしてるんです。そのせいもあり、最近すっごく用意するのに時
間がかかってしまって・・・。急がないといけないと思いつつも、ついつい
ストーブの前に行ってしまうと・・。気づけば時間が5分、10分と過ぎてし
まうんですよねぇ。今からこれでは、冬はどーなるんだろう??と思うと少
し不安な今日このごろ・・。                                  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.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

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