为了分析online log和archive log我们首先需要知道这些日志文件的存在物理路径,这时可以通过查询v$logfile来获取到online日志的路径和文件名对应sql:
select * from v$logfile;
查询v$archived_log表可以知道归档日志的路径及文件名:
select * from v$archived_log;
查到online log的文件和archived log文件后,即可登录sqlplus 进行日志的分析了,分析共以下几步:
(1) 操作系统命令提示符下执行:
sqlplus /nolog
(2) sqlplus命令符下执行:
connect / as sysdba;由于logmnr对应的包中默认执行权限为dba,因此可以直接用dba来执行相应的分析命令,当然也可以使用grant将对应包及对象的执行权限符给某个用户,这样也可以使用该用户登录oracle数据库,执行相应的分析命令;
(3)exec dbms_logmnr.add_logfile(logfilename=>'&logPathFile',options=>dbms_logmnr.new);
--将日志文件加到logmnr中,注意logmnr是基于session的,因此如果退出当前登陆用户,则对应的分析结果丢失,需要重新执行一遍操作;
(4)exec dbms_logmnr.add_logfile(logfilename=>'&logPathFile',options=>dbms_logmnr.addfile); --继续往logmnr中添加日志文件,原来我想试一下这个add_logfile是否支持*添加批量文件呢,结果不好使.
(5) exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog); --开始执行分析
(6) select timestamp,sql_redo,sql_undo from v$logmnr_contents where username='SCOTT'and table_name='T_TEST'; --查询v$logmnr_contents来查询分析结果;
(7) exec dbms_logmnr.end_logmnr;
原文链接:https://www.f2er.com/oracle/210252.html