oracleデータベースファイルの転送とトラッキングの整理

6609 ワード

トレースファイル
11 gの後、現在のユーザのtrcファイルを確認するときは、直接v$diag_を使用することができます.intoビューで見る
SYS @ BIRD>select * from v$diag_info;

   INST_ID NAME                   VALUE
---------- ---------------------- --------------------------------------------------
         1 Diag Enabled           TRUE
         1 ADR Base               /app/oracle
         1 ADR Home               /app/oracle/diag/rdbms/bird/BIRD
         1 Diag Trace             /app/oracle/diag/rdbms/bird/BIRD/trace
         1 Diag Alert             /app/oracle/diag/rdbms/bird/BIRD/alert
         1 Diag Incident          /app/oracle/diag/rdbms/bird/BIRD/incident
         1 Diag Cdump             /app/oracle/diag/rdbms/bird/BIRD/cdump
         1 Health Monitor         /app/oracle/diag/rdbms/bird/BIRD/hm
         1 Default Trace File     /app/oracle/diag/rdbms/bird/BIRD/trace/BIRD_ora_14
                                  007.trc

         1 Active Problem Count   0
         1 Active Incident Count  0
出力項目のDefault Trace Fileの値は、現在のセッションのtrcトラックファイルであり、現在のセッションのtraceイベントを実行する場合、このファイルは対応する情報を記録することができます.
oradebugを使って追跡します.
基本的な手順の考え方:1、pidまたは会話id oradebug setmypid oradebug setoraphidデータベースpid oradebug setootpidトラッキングプロセスを設定する2、traceファイルサイズoradebu ulimitを設定する無制限3、tracfileを確認するname oradebug tracfile_name 4、イベントoradebug session_を設定します.event 10046 trace name context forever、level 4はセッションレベル10046 oradebug event 10046 trace name context offシステムレベルを有効にします.
その他のまとめ:oradebug helpは、oradebug setmypidを使用して、現在のセッションoradebug setsysspid pidを追跡し、システムセッションoradebug dump system 10を利用してシステムの状態oradebug hanalyze 10を取得し、システムhangの原因を分析する.traceに生成され、原因をさらに分析します.
トラッキングはORA-00 xxxを生成するセッションを追跡する:このORA-000942/ORA-00952を引き起こすセッションを追跡するなら、oradebug event 942 trace name errorstack level 3 oradebug event 952 trace name errorstack 3 alter system set events'942 trace name rorstack 3;
alter sessionまたはalter systemでtraceイベントを設定して、イベントのトレースを行います.
命令形式:alter session set events'[eventnumber]trace name eventname[forever][,level levelnumber]
eventnumber:イベント番号immdediate:直ちに追跡して、alter session文の中でだけ使って、しかもeventnumberとforeverキーワードとeventnameを使うことができません.イベント名、つまりdump構造で、固定のキーワードがあります.eventnameがcontextの場合、コマンドのヘッダはイベント番号eventnumberを使用して追跡foreverを必要とします.イベントはインスタンスまたはセッション期間内で有効で、immediateと一緒にlevelイベントのキーワードレベルを使用することができません.しかし、dumpエラースタック時、レベルが存在しないという説は、レベル別に次のように説明されています.
dumpファイルのヘッダの時:level 1ファイルのヘッダのコントロール項目level 2ファイルのヘッダの最初のオプションlevel 10の完全なファイルのヘッダ、最も詳しい内容
10046イベントのSQL traceを使用する場合:10046はSQLに基づく追跡であり、SQL 0デバッグ禁止イベント1デバッグイベントを追跡するために使用される.各処理されたデータベース呼び出しに対して、SQL文、応答時間、サービス時間処理の行数、処理の行数、論理読みの数、物理読みと書き込みの数、実行計画、およびいくつかの追加情報4が与えられています.レベル1の場合、バインディング変数の追加情報が含まれます.主にデータタイプ、精度、各実行時に使用される値8は同じレベル1であり、待ち時間に関する詳細情報を加える.処理中の各待ち時間のために、待ち時間の名前、持続時間、およびいくつかの追加的なパラメータは、待ち時間のリソース12が同時に起動レベル4とレベル8を示すことができます.
dump buffes 1 buffer header 2 level 1+block header 3 level 2+block contens 4 level 1+hash chain 5 level 2+hash chain 6 level 3+hash chain 8 level 4+users/waiters 9 level 5+users/waiters 10 vell+6
常用dumpコマンド
コントロールファイルalter session set events'immediate trace name controlf level 2'またはoradebug dump controlf 2
ALTER SESSION SET EVENTS‘immediate trace name controlf level’;1ファイルヘッダ情報2 level 1+データベース情報+チェックポイント情報3 level 2+再利用可能節情報10 level 3
データファイル:oradebug dump file_hdrs 10 alter session set events'immediate trace name file_hdrs level 10';
ALTER SESSION SET EVENTS'immediate trace name file_hdrs level n’1制御ファイルのファイルヘッダ情報2 level 1+ファイルヘッダ情報3 level 2+データファイルヘッダ情報10 level 3
redo logファイルalter session set events'immediate trace name redohdr level 2'具体的なレベルは上記の通りです.
dump一時ファイルalter system dump tempfile'/ap/oradaa/BIRD/temp 01.dbf'block 1;
データファイルalter system dump datafile blockは、データブロックalter system dump datafile[|]block min block maxを導出し、連続する複数のデータブロックを導出する.
library cache:alter session set events'immediate trace name library_cache level 10';
heappdump:alter session set events'immediate trace name library_cache level 10';
row_cache:alter session set events'immediate trace name row_cache level 1'
processプロセス情報:alter session set events‘immediate trace name processsate level 10’;
undo header:alter system dump undo header'uSYSSMU 1'
10046イベントSQL追跡詳細
oradebugによりoradebug setorappid 156 oradebug unlimit oradebug event 10046 trace name context forever level 8 oradebug tracfile_name oradebug event 10046 trace name context off
グローバルトラッキングイベント:(パラメータファイルの設定)event=「10046 trace name context forever,level 12」
alter sessionによって現在のセッションを追跡する:altersession set tracfile="10046";追跡符altersession set eventsを設定する;10046 trace name context forever、level 12";alter session set events'10046 trace name contextを開く;クローズ
dbmsmonitorパッケージを通して10046イベントの追跡を行います.
begin
  dbms_monitor.session_trace_enable(session_id => 122,
                                    serial_num => 6734,
                                    waits      => true,
                                    binds      => false);
end;
SQLトレースをオフにします
begin
  dbms_monitor.session_trace_disable(session_id => 122, serial_num => 6734);
end;
SQLでトレイファイルの位置を調べます.

select s.SID,
       s.SERVER,
       lower(case
               when s.SERVER in ('DEDICATED', 'SHARED') then
                i.INSTANCE_NAME || '_' || nvl(pp.SERVER_NAME, nvl(ss.NAME, 'ora')) || '_' ||
                p.SPID || '.trc'
               else
                null
             end) as trace_file_name
  from v$instance      i,
       v$session       s,
       v$process       p,
       v$px_process    pp,
       v$shared_server ss
where s.PADDR = p.ADDR
   and s.SID = pp.SID(+)
   and s.PADDR = ss.PADDR(+)
   and s.TYPE = 'USER'
   and s.SID = 'your sid'
order by s.SID

現在のセッションのtraceファイルを表示します.
select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
       p.spid || '.trc' trace_file_name
  from (select p.spid
          from v$mystat m, v$session s, v$process p
         where m.statistic# = 1
           and s.sid = m.sid
           and p.addr = s.paddr) p,
       (select t.instance
          from v$thread t, v$parameter v
         where v.name = 'thread'
           and (v.value = 0 or t.thread# = to_number(v.value))) i,
       (select value from v$parameter where name = 'user_dump_dest') d
tkprofでtrcファイルをフォーマットするtkprof*.trc*.txt
注:tkprofの具体的な使い方は命令ヘルプオプションを見てください.