Просмотр самых встречающихся объектов в архивных и оперативных логах
Опубликовано: Март 31, 2011, категория: администрирование.
Иногда надо просматривать что же такого много нагенерированного в логах.. вот написал тестовый скрипт.
На входе дата начала просмотра и дата окончания - на выходе самые частовстречающиеся объекты по 5 штук для каждой инструкции INSERT,DELTE,UPDATE
– Created on 24.03.2011 by TIGRANAV
declare
– Local variables here
i integer;
l_starttime varchar2(100) := ‘28.03.2011 8:00:00′;
l_endtime varchar2(100) := ‘28.03.2011 8:15:00′;
m integer;
begin
– Test statements here
for i in (select name, first_time, completion_time
from v$archived_log
where first_time >
to_date(l_starttime, ‘DD.MM.YYYY HH24:MI:SS’)
and completion_time <
to_date(l_endtime, ‘DD.MM.YYYY HH24:MI:SS’)) loop
htp.p(i.name || ‘<br>’);
DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => i.name,
OPTIONS => DBMS_LOGMNR.NEW);
DBMS_LOGMNR.START_LOGMNR(STARTTIME => i.first_time,
ENDTIME => i.completion_time,
OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
for j in (select operation, count(*) as cn
from V$LOGMNR_CONTENTS
where operation in (’INSERT’, ‘UPDATE’, ‘DELETE’)
group by operation
order by count(*) desc) loop
htp.p(j.operation || ‘ - ‘ || j.cn || ‘<br>’);
m := 0;
for k in (select SEG_OWNER || ‘.’ || SEG_NAME as obj, count(*) as cn
from V$LOGMNR_CONTENTS
where operation = j.operation
group by SEG_OWNER || ‘.’ || SEG_NAME
order by count(*) desc) loop
if (m < 5) then
htp.p(’ ‘ || k.obj || ‘ -> ‘ || k.cn || ‘<br>’);
end if;
m := m + 1;
end loop;
end loop;
end loop;
end;
carl on Октябрь 7, 2011
“http://en.patriot-cccp.ru/index.php?option=com_content&view=article&id=7866&lol=guard@kskzs1.act”>.…
tnx :?…