Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
Заинтересовался таким моментом этой статьи

Jonathan Lewis
Option 3 - there is an event (10240) which is supposed to produce a trace file listing the addresses of blocks we wait for (hooray!), but I've not yet managed to get it to work. If you do know how to, please let me know, as this is clearly the optimum solution.

После некоторого ковыряния в коде Оракла выяснил, что запись в файл трассировки производится при выставленном флаге трассировки и при совпадении уровня некоторого диагностического события с проверяемым. Например:

 eax = ksdtfg_ == 0 ? 0 : ksdpec(10299);
 if(eax != 0) {
     eax = ksdwrf("Prefetching disabled\n");
 }

eax = ksdtfg_ == 0 ? 0 : ksdpec(10998);
if(eax >= 0xa) {
    kcbzgbs();
}

Вот только найти вызов ksdpec(10240) мне не удалось. Поэтому у Льюиса ничего не получилось.

По ходу этого еще удалось выяснить, что у события ожидания "buffer busy waits" третий параметр может принимать следующие значения (9.2.0.6): 110, 111, 210, 211, 300, 301, 302, 120, 121, 220, 221, 130, 131, 230, 231.

kcbget(...)
    ...
    kcbzwb(..., 0x6f);
    ...
    kcbzwb(..., 0x6e);
    ...
    kcbzwb(..., 0xd2);
    ...
    kcbzwb(..., 0xd3);

kcbnew(...)
    ...
    kcbzwb(..., 0x12c);
    ...
    kcbzwb(..., 0x12e);
    ...
    kcbzwb(..., 0x12d);

kcbgcur(...)
    ...
    kcbzwb(..., 0x78);
    ...
    kcbzwb(..., 0xdd);
    ...
    kcbzwb(..., 0xdc);
    ...
    kcbzwb(..., 0x79);

kcbgtcr(...)
    ...
    kcbzwb(..., 0x83);
    ...
    kcbzwb(..., 0x82);
    ...
    kcbzwb(..., 0xe7);
    ...
    kcbzwb(..., 0xe6);

Беглый просмотр того же самого для 8.1.7 дал такие значения: kcbget - 100, 110, 200, 210; kcbgtcr - 130, 230, 231.

В ноте 34405.1 части значений нет, и часть из перечисленных в ней значений отсутствует в листинге. Хотя, может, я не то нарыл
29 июн 06, 15:13    [2826225]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
автор

После некоторого ковыряния в коде Оракла выяснил, что запись в файл трассировки производится при выставленном флаге трассировки и при совпадении уровня некоторого диагностического события с проверяемым.

А можно немножко подробнее?.. :-).. Чуть крупнее методику, как удалось это выяснить?..
29 июн 06, 15:26    [2826339]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
HX
Чуть крупнее методику, как удалось это выяснить?..

Не было никакой методы. Все что нужно - тулза для реверс инжиниринга, знания си, некоторый опыт анализа исходного кода и удача :)
29 июн 06, 15:41    [2826461]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Сынок
HX
Чуть крупнее методику, как удалось это выяснить?..

Не было никакой методы. Все что нужно - тулза для реверс инжиниринга, знания си, некоторый опыт анализа исходного кода и удача :)

Ох.. там такая мура у меня получалась... :-(.. какой тулзой пользуетесь?..
29 июн 06, 15:44    [2826489]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
HX
какой тулзой пользуетесь?..

Этой
29 июн 06, 15:49    [2826519]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
Да, вот все события, что нашел в 9.2:

0, 1, 4, 6, 8105, 8110, 10000, 10001, 10005, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10017, 10018, 10021, 10022, 10023, 10024, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10036, 10037, 10039, 10041, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10056, 10057, 10059, 10060, 10061, 10062, 10063, 10064, 10066, 10067, 10068, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10084, 10085, 10086, 10087, 10088, 10089, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10102, 10103, 10104, 10106, 10107, 10108, 10109, 10110, 10112, 10114, 10115, 10116, 10118, 10119, 10120, 10121, 10122, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10147, 10148, 10149, 10150, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10209, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10231, 10232, 10233, 10234, 10235, 10237, 10239, 10241, 10242, 10243, 10244, 10246, 10247, 10248, 10249, 10250, 10251, 10254, 10255, 10257, 10258, 10259, 10261, 10262, 10263, 10265, 10267, 10268, 10269, 10270, 10277, 10278, 10279, 10280, 10281, 10282, 10284, 10285, 10286, 10287, 10288, 10289, 10291, 10293, 10295, 10296, 10297, 10298, 10299, 10301, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10364, 10365, 10370, 10371, 10372, 10373, 10375, 10378, 10380, 10381, 10383, 10384, 10385, 10386, 10390, 10391, 10392, 10393, 10394, 10395, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10406, 10407, 10409, 10410, 10413, 10425, 10426, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10442, 10450, 10451, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10510, 10511, 10512, 10513, 10515, 10517, 10518, 10520, 10522, 10523, 10550, 10600, 10601, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10619, 10622, 10623, 10624, 10625, 10627, 10628, 10650, 10690, 10691, 10692, 10701, 10704, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10730, 10731, 10732, 10733, 10740, 10750, 10800, 10826, 10830, 10831, 10850, 10851, 10852, 10856, 10857, 10858, 10859, 10861, 10862, 10871, 10900, 10902, 10903, 10904, 10905, 10906, 10910, 10911, 10912, 10913, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10936, 10938, 10941, 10943, 10944, 10970, 10976, 10977, 10979, 10982, 10984, 10985, 10986, 10988, 10989, 10996, 10998, 12018, 12498, 12499, 12836, 12837, 14240, 14524, 14525, 14526, 16048, 16054, 16141, 16144, 16149, 16153, 16158, 16300, 16410, 16615, 16616, 16787, 17614, 17615, 19021, 19027, 19548, 19549, 22325, 22700, 22815, 22820, 22822, 22825, 22827, 22830, 22832, 22932, 22934, 23456, 24040, 24951, 25273, 25275, 25474, 25475, 26531, 26661, 26700, 26707, 28038, 28131, 28266, 28657, 29700, 29713, 29715, 29717, 29718, 29720, 29722, 29729, 29730, 29731, 29732, 29745, 29799, 29889, 29912, 30019, 30020, 30028, 30030, 30061, 30062, 30063, 30064, 30067, 30068, 30302, 30303, 30304, 30305, 30308, 30310, 30314, 30318, 30499, 31049, 31098, 31150, 32333, 32338, 38001, 38002, 38003, 38005, 38006, 38007, 38008, 38009, 38010, 38015, 38018, 38020, 38025, 38026, 38027, 38028, 38030, 38034, 38035, 38039, 99999, 999000
29 июн 06, 15:52    [2826543]     Ответить | Цитировать Сообщить модератору
 По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
--
Guest
автор
Вот только найти вызов ksdpec(10240) мне не удалось. Поэтому у Льюиса ничего не получилось.

Т.е. фактически включить его через alter system нельзя?
29 июн 06, 16:33    [2826863]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
--
Т.е. фактически включить его через alter system нельзя?

Включить то можно, вот только обработчик для него отсутствует.
29 июн 06, 16:44    [2826985]     Ответить | Цитировать Сообщить модератору
 По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
--
Guest
Сынок
--
Т.е. фактически включить его через alter system нельзя?

Включить то можно, вот только обработчик для него отсутствует.

Ну, я имел в виду, что один хрен трейса не увидим?:)
29 июн 06, 16:48    [2827015]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
--

Ну, я имел в виду, что один хрен трейса не увидим?:)

Вы не верите Льюису? :)
29 июн 06, 16:50    [2827032]     Ответить | Цитировать Сообщить модератору
 По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
--
Guest
Сынок
--

Ну, я имел в виду, что один хрен трейса не увидим?:)

Вы не верите Льюису? :)

Ну, Льюис тоже человек, он тоже может ошибаться (и кстати один раз я уже в этом убедился).
Но дело не в этом, я просто спросил у вас как у человека, который исследовал вопрос, не более:)
29 июн 06, 17:47    [2827470]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
--
Но дело не в этом, я просто спросил у вас как у человека, который исследовал вопрос, не более:)

Исправлюсь. Но чуток по-позже.
29 июн 06, 21:58    [2828258]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
Сынок
--
Но дело не в этом, я просто спросил у вас как у человека, который исследовал вопрос, не более:)

Исправлюсь. Но чуток по-позже.

Исправился

Файлы трассировки не создаются:

[oracle@localhost test]$ cat test.sh
sqlplus test/test @test0

sqlplus test/test @test1 &

sqlplus test/test @test2 &

wait
[oracle@localhost test]$
[oracle@localhost test]$ cat test0.sql
set echo on

drop table bbw
/

create table bbw
as
select rownum c1, rownum c2
  from all_objects
 where rownum <= 2
/

create unique index bbw_c1_ix on bbw(c1)
/

exit
[oracle@localhost test]$
[oracle@localhost test]$ cat test1.sql
set echo on

column spid new_value SPID

select spid
  from (select sid
          from v$mystat
         where rownum = 1) st, v$process ps, v$session sn
 where st.sid = sn.sid and sn.paddr = ps.addr
/

alter session set max_dump_file_size = unlimited
/

alter session set events '10240 trace name context forever, level 1'
/

begin
   for i in 0 .. 2000
   loop
      update bbw
         set c2 = c2
       where c1 = 1;
   end loop;
end;
/

commit;

! cat $ORACLE_BASE/admin/test920/udump/test920_ora_"&SPID".trc

exit
[oracle@localhost test]$
[oracle@localhost test]$ cat test2.sql
set echo on

column spid new_value SPID

select spid
  from (select sid
          from v$mystat
         where rownum = 1) st, v$process ps, v$session sn
 where st.sid = sn.sid and sn.paddr = ps.addr
/

alter session set max_dump_file_size = unlimited
/

alter session set events '10240 trace name context forever, level 1'
/

begin
   for i in 0 .. 2000
   loop
      update bbw
         set c2 = c2
       where c1 = 2;
   end loop;
end;
/

commit;

! cat $ORACLE_BASE/admin/test920/udump/test920_ora_"&SPID".trc

exit
[oracle@localhost test]$
[oracle@localhost test]$ ./test.sh

SQL*Plus: Release 9.2.0.6.0 - Production on Sun Jul 2 16:48:53 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL>
SQL> drop table bbw
  2  /

Table dropped.

SQL>
SQL> create table bbw
  2  as
  3  select rownum c1, rownum c2
  4    from all_objects
  5   where rownum <= 2
  6  /

Table created.

SQL>
SQL> create unique index bbw_c1_ix on bbw(c1)
  2  /

Index created.

SQL>
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL*Plus: Release 9.2.0.6.0 - Production on Sun Jul 2 16:48:54 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


SQL*Plus: Release 9.2.0.6.0 - Production on Sun Jul 2 16:48:54 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL>

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL>
SQL> column spid new_value SPID
SQL>
SQL> select spid
  2    from (select sid
  3            from v$mystat
  4           where rownum = 1) st, v$process ps, v$session sn
  5   where st.sid = sn.sid and sn.paddr = ps.addr
  6  /

SPID
------------
12424

SQL>
SQL> alter session set max_dump_file_size = unlimited
  2  /

Session altered.

SQL>
SQL> alter session set events '10240 trace name context forever, level 1'
  2  /

Session altered.

SQL>
SQL> begin
  2     for i in 0 .. 2000
  3     loop
  4        update bbw
  5           set c2 = c2
  6         where c1 = 1;
  7     end loop;
  8  end;
  9  /
SQL> column spid new_value SPID
SQL>
SQL> select spid
  2    from (select sid
  3            from v$mystat
  4           where rownum = 1) st, v$process ps, v$session sn
  5   where st.sid = sn.sid and sn.paddr = ps.addr
  6  /

SPID
------------
12425

SQL>
SQL> alter session set max_dump_file_size = unlimited
  2  /

Session altered.

SQL>
SQL> alter session set events '10240 trace name context forever, level 1'
  2  /

Session altered.

SQL>
SQL> begin
  2     for i in 0 .. 2000
  3     loop
  4        update bbw
  5           set c2 = c2
  6         where c1 = 2;
  7     end loop;
  8  end;
  9  /

PL/SQL procedure successfully completed.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> ! cat $ORACLE_BASE/admin/test920/udump/test920_ora_"&SPID".trc
cat: /orcl/app/oracle/admin/test920/udump/test920_ora_12425.trc: No such file or directory

SQL>
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

PL/SQL procedure successfully completed.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> ! cat $ORACLE_BASE/admin/test920/udump/test920_ora_"&SPID".trc
cat: /orcl/app/oracle/admin/test920/udump/test920_ora_12424.trc: No such file or directory

SQL>
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production
[oracle@localhost test]$


Так, чтобы было видно ожидания, вот аналогичный тест, но с другим событием:

[oracle@localhost test]$ ./test.sh

SQL*Plus: Release 9.2.0.6.0 - Production on Sun Jul 2 16:44:16 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL>
SQL> drop table bbw
  2  /

Table dropped.

SQL>
SQL> create table bbw
  2  as
  3  select rownum c1, rownum c2
  4    from all_objects
  5   where rownum <= 2
  6  /

Table created.

SQL>
SQL> create unique index bbw_c1_ix on bbw(c1)
  2  /

Index created.

SQL>
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL*Plus: Release 9.2.0.6.0 - Production on Sun Jul 2 16:44:17 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


SQL*Plus: Release 9.2.0.6.0 - Production on Sun Jul 2 16:44:17 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL>
SQL> column spid new_value SPID
SQL>
SQL> select spid
  2    from (select sid
  3            from v$mystat
  4           where rownum = 1) st, v$process ps, v$session sn
  5   where st.sid = sn.sid and sn.paddr = ps.addr
  6  /

SPID
------------
12377

SQL>
SQL> alter session set max_dump_file_size = unlimited
  2  /

Session altered.

SQL>
SQL> alter session set events '10046 trace name context forever, level 8'
  2  /

Session altered.

SQL>
SQL> begin
  2     for i in 0 .. 2000
  3     loop
  4        update bbw
  5           set c2 = c2
  6         where c1 = 1;
  7     end loop;
  8  end;
  9  /

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

SQL>
SQL> column spid new_value SPID
SQL>
SQL> select spid
  2    from (select sid
  3            from v$mystat
  4           where rownum = 1) st, v$process ps, v$session sn
  5   where st.sid = sn.sid and sn.paddr = ps.addr
  6  /

SPID
------------
12378

SQL>
SQL> alter session set max_dump_file_size = unlimited
  2  /

Session altered.

SQL>
SQL> alter session set events '10046 trace name context forever, level 8'
  2  /

Session altered.

SQL>
SQL> begin
  2     for i in 0 .. 2000
  3     loop
  4        update bbw
  5           set c2 = c2
  6         where c1 = 2;
  7     end loop;
  8  end;
  9  /

PL/SQL procedure successfully completed.

SQL>
SQL> commit;

PL/SQL procedure successfully completed.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> ! grep "buffer busy waits" $ORACLE_BASE/admin/test920/udump/test920_ora_"&SPID".trc
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 56 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 0 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 43 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 35 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 40 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 31 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 39 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 14 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 26 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 525 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 79 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 30 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 34 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 0 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 42 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 20 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 30 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 25 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 24 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 29 p1=5 p2=20 p3=220

SQL>
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production

Commit complete.

SQL>
SQL> ! grep "buffer busy waits" $ORACLE_BASE/admin/test920/udump/test920_ora_"&SPID".trc
WAIT #2: nam='buffer busy waits' ela= 119 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 33 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 20 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 25 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 30 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 26 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 40 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 47 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 27 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 531 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 360 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 217 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 29 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 34 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 36 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 36 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 15 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 14 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1197 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 2 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 17 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 18 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 43 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 1 p1=5 p2=20 p3=220
WAIT #2: nam='buffer busy waits' ela= 16 p1=5 p2=20 p3=220

SQL>
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production
[oracle@localhost test]$
2 июл 06, 17:23    [2834304]     Ответить | Цитировать Сообщить модератору
 По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
--
Guest
Сынок

Файлы трассировки не создаются

Жаль... :)
Сынок

Исправился

Спасибо за наглядный пример:)
2 июл 06, 19:36    [2834410]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
.....
Guest
Сынок
Сынок
--
Но дело не в этом, я просто спросил у вас как у человека, который исследовал вопрос, не более:)

Исправлюсь. Но чуток по-позже.

Исправился

Файлы трассировки не создаются:

[/src]


Хм. и ради этого ты не пошел пиффка попить?
2 июл 06, 22:27    [2834614]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сынок
Guest
.....
Хм. и ради этого ты не пошел пиффка попить?

Нет. Это побочный продукт моей деятельности :) А пифка мне еще с тяпницы хватило :(
3 июл 06, 09:13    [2834988]     Ответить | Цитировать Сообщить модератору
 По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
.....
Guest
повторил опыт Льюиса - ничего не получилось :)

искомые buffer busy wait в файле не появлялись. Оказалось поменялись event# для 9-ки (хатя не помню уже для 8-ки ). Для этого события надо выставлять 158, а не 92.

Попутно нарвался на фичу. из этой же статьи

The oracle_trace_collection_name must be set to an explicit blank " " 
otherwise it defaults to "oracle," and if there is a collection name available, 
when trace is enabled then Oracle does instance level tracing from the moment 
it starts up (ouch!).

поднимаюсь с
oracle_trace_enable = false
oracle_trace_collection_name='';

делаю oracle_trace_enable=true, на что получаю ora-7445 smon (pmon) кладет экземпляр.

Походу дела, в любом случае начинается трейс экземпляра при выставленном
oracle_trace_enable=true?

Лечилось EPC_DISABLED=TRUE на уровне OC, что сводит на нет саму необходимость пакета :)
Изменение EPC_DISABLED=FALSE, позволило подняться и провести трассировку.

Мож что криво сделал? Куда рыть? Стабильно ли работает OTRACE, пользует его кто-нибудь?
7 июл 06, 03:38    [2852423]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Alexander Anokhin
Member

Откуда: Хабаровск
Сообщений: 500
Знает ли кто-нибудь как можно связаться с автором?
Буду весьма признателен, если кто-нибудь даст его контакт или передаст ему мою просьбу написать мне.
28 янв 12, 14:43    [11988973]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Alexander Anokhin
Member

Откуда: Хабаровск
Сообщений: 500
Не теряю надежды ;-)
31 янв 12, 10:09    [12001094]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Alexander Anokhin,

По крайней мере он вроде как знает HX и scna.

А вообще напиши всем, кто был с ним на встречах московских ораклоидов. Кто-нибудь да ответит. :))
31 янв 12, 11:34    [12001869]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
Alexander Anokhin,
Разминулись?)
31 янв 12, 11:38    [12001911]     Ответить | Цитировать Сообщить модератору
 Re: По следам одной из публикаций Льюиса (Oracle_trace - the Best Built-in Diagnostic Tool?)  [new]
Сына
Member

Откуда:
Сообщений: 804
Alexander Anokhin, зачем он вам? )
31 янв 12, 11:45    [12001980]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить