参考:(1)http://blog.csdn.net/fidelhl/archive/2008/05/12/2439058.aspx
(2)http://download.oracle.com/docs/cd/B28359_01/server.111/b28319/logminer.htm#i1015913之LogMiner Dictionary Files and Redo Log Files
在使用logminer之前,要弄懂logminer怎么使用logminer数据字典和重做日志。
Logminer需要数据字典进行对象ID到对象名的转换,有三种类型的数据字典可供使用:
1。在线目录(online catalog)
2。重做日志
3。普通的文件(参考1使用了该方式)
三种方式的选择依据如下:
说明: 源数据库(source database)指产生重做日志的数据库,与之相对的是挖掘数据库(mining database)指进行logminer的数据库。这两个数据库可以是同一个,也可以不是同一个。
本文选择第一种方式,具体操作过程如下:
1.以管理员身份登录
$sqlplus / as sysdba
2.打开supplemental log data
SQL>alter database add supplemental log data;
SQL>alter database add supplemental log data(primary key) columns;
3.修改表HR.EMPLOYEES
SQL>update hr.employees set salary=10000 where employee_id=100;
SQL>update hr.employees set salary=10100 where employee_id=101;
SQL>commit;
4.强制切换日志
在切换日志之前,查看所有日志文件。
SQL>alter system switch logfile;
新生成日志文件/u01/app/orames/admin/mestest/archivelog/1_29_753314348.dbf。
5.Logminer过程
(1)添加要进行挖掘的归档日志文件
SQL>exec dbms_logmnr.add_logfile(LogFileName => '/u01/app/orames/admin/mestest/archivelog/1_29_753314348.dbf',options=>DBMS_LOGMNR.new);
可是用该方法继续添加文件,只需将方法add_logfile第二个参数改为options=>DBMS_LOGMNR.ADDFILE。
(2)开始挖掘
SQL>dbms_logmnr.start_logmnr(Options => dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
(3)查看结果
SQL>select sql_undo,sql_redo from v$logmnr_contents vlc where vlc.SEG_NAME='EMPLOYEES';
结果如下:
SQL_UNDO
--------------------------------------------------------------------------------
update "HR"."EMPLOYEES" set "SALARY" = '12000' where "EMPLOYEE_ID" = '100' and "
update "HR"."EMPLOYEES" set "SALARY" = '10200' where "EMPLOYEE_ID" = '101' and "
SQL_REDO
--------------------------------------------------------------------------------
update "HR"."EMPLOYEES" set "SALARY" = '10000' where "EMPLOYEE_ID" = '100' and "
update "HR"."EMPLOYEES" set "SALARY" = '10100' where "EMPLOYEE_ID" = '101' and "
(4)结束该过程
SQL>exec dbms_logmnr.end_logmnr;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24867611/viewspace-735351/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24867611/viewspace-735351/