Поиск по этому блогу

среда, марта 25, 2009

Увидел статейку о LOGMINER. Перенес себе.

--1)
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

--2)Построить словарь:
execute dbms_logmnr_d.build(options=>dbms_logmnr_d.store_in_redo_logs);

--3) Определяем лог в котором находится словарь
col name_dict new_val v_name_dict
SELECT
name name_dict
FROM
V$ARCHIVED_LOG
WHERE
sequence# = (select max(sequence#) from V$ARCHIVED_LOG where dictionary_begin='YES')
;

col member format a60 new_val v_member
select
f.member
from
v$log l,
v$logfile f
where
l.group# = f.group# and
l.status = 'CURRENT'
;
--4) На этом этапе производятся изменения в БД, в структуре таблиц

--5) Теперь работаем
alter system switch logfile;

-- Включаем те в котором находится определение словар
execute dbms_logmnr.add_logfile(logfilename=>'&&v_name_dict',options=>dbms_logmnr.new);
execute dbms_logmnr.add_logfile(logfilename=>'&&v_member',options=>dbms_logmnr.addfile);

--!!! Для трэкинга может понадобиться включение последующих логов, кроме тех что выше
execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_redo_logs+dbms_logmnr.ddl_dict_tracking);