博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用logminer来分析对表所做的修改
阅读量:2438 次
发布时间:2019-05-10

本文共 2265 字,大约阅读时间需要 7 分钟。

使用logminer来分析对表所做的修改
1.设置初始化参数UTL_FILE_DIR 以指定一个允许 PL/SQL 文件 I/O 的目录
utl_file_dir='D:\oracle\log';
2.执行 BMS_LOGMNR_D.BUILD 过程以创建字典文件
execute dbms_logmnr_d.build('ocp.ora','D:\oracle\log');
指定要分析的日志文件
3.设置 V$LOGMNR_CONTENTS 视图:
初始化新列表并指定第一个日志文件
SQL> execute dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\REDO01.LOG',dbms_logmnr.new);
PL/SQL 过程已成功完成。
向列表中添加其它日志文件
SQL> execute dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\REDO02.LOG',dbms_logmnr.addfile);
PL/SQL 过程已成功完成。
设置 LogMiner 会话
一旦创建了字典文件您就可以开始分析重做日志第一步是使用
DBMS_LOGMNR.ADD_LOGFILE 过程指定要分析的日志文件
使用下列常量
? DBMS_LOGMNR.NEW 创建一个新列表并指定第一个日志文件
? DBMS_LOGMNR.ADDFILE 向列表中添加其它日志文件
? DBMS_LOGMNR.REMOVEFILE 从列表中删除重做日志
LogMiner 可以分析联机和归档日志文件
开始分析重做日志文件
初始化 LogMiner 会话:
EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>'D:\oracle\log\ocp.ora');
4.创建一个中间表用来存储对lv_insr_topay表的dml操作记录
create table jy_logmnr
(sql_redo varchar2(4000),
sql_undo varchar2(4000)
);
insert into jy_logmnr
SELECT sql_redo,SQL_UNDO FROM v$logmnr_contents WHERE seg_name = 'LV_INSR_TOPAY';
select * from jy_logmnr;
SQL> select * from jy_logmnr ;
SQL_REDO                                                                         SQL_UNDO
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
insert into "INSUR_CHANGDE"."LV_INSR_TOPAY"("PAY_INFO_NO","CALC_PRD","PAY_MONEY" delete from "INSUR_CHANGDE"."LV_INSR_TOPAY" where "PAY_INFO_NO" = '17524467' and
也可以运行
SELECT timestamp, username, sql_redo,SQL_UNDO
FROM v$logmnr_contents
WHERE seg_name = 'LV_INSR_TOPAY';
SQL> SELECT timestamp, username, sql_redo,SQL_UNDO
  2  FROM v$logmnr_contents
  3  WHERE seg_name = 'LV_INSR_TOPAY';
TIMESTAMP   USERNAME                       SQL_REDO                                                                         SQL_UNDO
----------- ------------------------------ -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2012-1-1 13                                insert into "INSUR_CHANGDE"."LV_INSR_TOPAY"("PAY_INFO_NO","CALC_PRD","PAY_MONEY" delete from "INSUR_CHANGDE"."LV_INSR_TOPAY" where "PAY_INFO_NO" = '17524467' and
5.完成 LogMiner 会话:
EXECUTE DBMS_LOGMNR.END_LOGMNR;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-714608/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26015009/viewspace-714608/

你可能感兴趣的文章
CREATE INDEX index1 ON table1(col1)
查看>>
STORAGE (
查看>>
是分区索引
查看>>
INITIAL 16M
查看>>
PARTITION partition02
查看>>
那上边的到底是 global index还是partition index
查看>>
TABLESPACE tablespace02
查看>>
local nopartition index:
查看>>
PARTITION partition04
查看>>
应该算是系统繁忙,一般社保局下午2点钟工作很忙的。
查看>>
关于temp表空间的问题
查看>>
RAC警示录-----各位兄弟补充
查看>>
关于oracle的dbconsole
查看>>
A. Drop and re-create the inbox.
查看>>
发表于 2008-1-30 12:28
查看>>
关于RAC的GV视图的问题
查看>>
实现具有动态主机IP的域名解析 (转)
查看>>
数据库对象命名规范问题....
查看>>
QUESTION 121
查看>>
Borland : Java , Java ,and Java again ! (转)
查看>>