在ORACLE数据库中,LGWR进程将数据库中进行的DML等操作信息记录在日志文件中,在归档模式下,日志文件还会写出到归档日志文件中。在数据库发生故障崩溃后,恢复时数据库可以根据日志信息来重演事务,完成恢复,从而保证成功提交的事务不丢失。
很多第三方工具以及ORACLE的一些工作,都可以通过解析日志文件来实现数据复制和同步。ORACLE随数据库软件提供了一个LOGMNR工具,可以很容易实现对于日志的解析,熟悉LOGMNR的实用在很多时候可以帮助我们分析数据库问题,找出根本原因。
从ORACLE9i开始,LOGMNR的实用大大简化,可以使用LOGMNR在线分析和挖掘日志,使用当前在线的数据字典,非常方便,以下是一个简要的测试和说明。
首先执行一个ddl操作,已记录重做信息;
1、切换日志组
alter system switch logfile;
2、新建表
create table test as select * from dba_users;
3、查看当前日志组
select * from v$log where status='CURRENT';
4、根据当前日志组号查找日志文件位置
select member from v$logfile where group#=1;
5、执行解析操作
exec dbms_logmnr.add_logfile(d:appadministratororadataorclredo01.log',dbms_logmnr.new);
exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
6、查看重演create table的ddl操作
select sql_redo from v$logmnr_contents;
7、结束日志解析过程
exec dbms_logmnr.end_logmnr;
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26274656/viewspace-1055010/ ,如需转载,请注明出处,否则将追究法律责任。