Oracle11g之LogMiner常⽤场景
1 LogMiner常⽤场景
1.1 ⽤LogMiner跟踪特定⽤户所做的更改
本节例⼦,查出⽤户joedevo在特定时间范围内对数据库所做的所有操作,步骤如下:
1.创建LogMiner字典
使⽤LogMiner分析joedevo相关的数据,必须在joedevo对它的所有表做任何的更改操作前创建LogMiner字典或者直接使⽤在线字典,本例使⽤已提取到重做
⽇志⽂件中的LogMiner字典。
2.添加重做⽇志⽂件
在joedevo对数据库做了⼀些更改操作之后,可以指定对应的重做⽇志⽂件来分析:
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE( -
LOGFILENAME => 'a', -
OPTIONS => DBMS_LOGMNR.NEW);
根据需要添加其他的重做⽇志⽂件:
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE( -
LOGFILENAME => 'a', -
OPTIONS => DBMS_LOGMNR.ADDFILE);
3.开启LogMiner并限制查询范围
oracle11g 创建数据库SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR( -
DICTFILENAME => 'a', -
STARTTIME => TO_DATE('01-Jan-1998 08:30:00','DD-MON-YYYY HH:MI:SS'), - ENDTIME => TO_DATE('01-Jan-1998 08:45:00', 'DD-MON-YYYY HH:MI:S 4.查询V$LOGMNR_CONTENTS
SQL> SELECT SQL_REDO, SQL_UNDO FROM V$LOGMNR_CONTENTS
WHERE USERNAME = 'joedevo' AND SEG_NAME = 'salary';
5.停⽌LogMiner
SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
1.2 ⽤LogMiner做表的访问统计
本节案例中,假设你管理者⼀个直营数据库,想确定1⽉份2周内客户带来的⽣产效益,假定你已经创建了LogMiner字典并添加了相关的重做⽇志⽂件,接下来的步骤如下:
1.开始LogMiner并限制查询范围
SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR( -
STARTTIME => TO_DATE('07-Jan-2003 08:30:00','DD-MON-YYYY HH:MI:SS'), -
ENDTIME => TO_DATE('21-Jan-2003 08:45:00','DD-MON-YYYY HH:MI:SS'), -
DICTFILENAME => '/usr/a');
2.查询V$LOGMNR_CONTENTS
查询V$LOGMNR_CONTENTS确定指定时间范围内哪些表发⽣了变化:
SQL> SELECT SEG_OWNER, SEG_NAME, COUNT(*) AS Hits FROM
V$LOGMNR_CONTENTS WHERE SEG_NAME NOT LIKE '%$' GROUP BY
SEG_OWNER, SEG_NAME ORDER BY Hits DESC;
3.停⽌LogMiner
SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论