Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

ORA-01371: Complete LogMiner dictionary not found

711049Aug 20 2009 — edited Jul 26 2010
Hi group members,

I'm testing Oracle LogMiner utility, but I can't start the logminer with the "dict_from_redo_logs" option. The error message shown below.

SQL> execute dbms_logmnr.start_logmnr(options => -
dbms_logmnr.dict_from_redo_logs + -
dbms_logmnr.ddl_dict_tracking);
BEGIN dbms_logmnr.start_logmnr(options => dbms_logmnr.dict_from_redo_logs + dbms_logmnr.ddl_dict_tracking); END;

*
ERROR at line 1:
ORA-01371: Complete LogMiner dictionary not found
ORA-06512: at "SYS.DBMS_LOGMNR", line 58
ORA-06512: at line 1


SQL>

Please help me to learn the cause problem. In the google search I only found this cause: "One or more log files containing the LogMiner dictionary was not found". But I figure out anything from this cause.

Comments

Remigiusz Boguszewicz
Hello,

try this:
EXECUTE DBMS_LOGMNR.START_LOGMNR(STARTTIME => SYSDATE -1,ENDTIME => SYSDATE, OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS + DBMS_LOGMNR.COMMITTED_DATA_ONLY + DBMS_LOGMNR.PRINT_PRETTY_SQL + DBMS_LOGMNR.CONTINUOUS_MINE);
ORA-01371: Complete LogMiner dictionary not found
EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
ORA-01354: Supplemental log data must be added to run this command

http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/logminer.htm#sthref1995
"By default, Oracle Database does not provide any supplemental logging, which means that by default LogMiner is not usable. Therefore, you must enable at least minimal supplemental logging prior to generating log files which will be analyzed by LogMiner."

So after all the errors, we can start the logmnr session:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
EXECUTE DBMS_LOGMNR.START_LOGMNR(STARTTIME => SYSDATE -1/24,ENDTIME => SYSDATE, OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS + DBMS_LOGMNR.COMMITTED_DATA_ONLY + DBMS_LOGMNR.PRINT_PRETTY_SQL + DBMS_LOGMNR.CONTINUOUS_MINE);
We can see which redo is affecter by specified timespan
SELECT FILENAME name FROM V$LOGMNR_LOGS;
Now we can query the V$LOGMNR_CONTENTS view
select count(*) from V$LOGMNR_CONTENTS;
SELECT USERNAME, SQL_REDO FROM V$LOGMNR_CONTENTS where SEG_OWNER IS NULL OR SEG_OWNER NOT IN ('SYS', 'SYSTEM') and USERNAME='SCOTT' ;
End the LogMiner session.
EXECUTE DBMS_LOGMNR.END_LOGMNR();
** Using online catalog
EXECUTE DBMS_LOGMNR.START_LOGMNR(STARTTIME => SYSDATE -1/24,ENDTIME => SYSDATE, OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.COMMITTED_DATA_ONLY + DBMS_LOGMNR.PRINT_PRETTY_SQL + DBMS_LOGMNR.CONTINUOUS_MINE);

Greetings
Remigiusz Boguszewicz
1 - 1
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Aug 23 2010
Added on Aug 20 2009
1 comment
5,930 views