您好,欢迎访问一九零五行业门户网

Oracle 11g之LogMiner常用场景

1 logminer 常用场景 1.1 用 logminer 跟踪特定用户所做的更改 本节例子,查出用户joedevo在特定时间范围内对数据库所做的所有操作,步骤如下: 1.创建logminer字典 使用logminer分析joedevo相关的数据,必须在joedevo对它的所有表做任何的更改操作前创建lo
1 logminer常用场景
1.1 用logminer跟踪特定用户所做的更改
本节例子,查出用户joedevo在特定时间范围内对数据库所做的所有操作,步骤如下:
1.创建logminer字典
   使用logminer分析joedevo相关的数据,必须在joedevo对它的所有表做任何的更改操作前创建logminer字典或者直接使用在线字典,本例使用已提取到重做日志文件中的logminer字典。
2.添加重做日志文件
在joedevo对数据库做了一些更改操作之后,可以指定对应的重做日志文件来分析:
sql> execute dbms_logmnr.add_logfile( - logfilename => 'log1orc1.ora', - options => dbms_logmnr.new);
根据需要添加其他的重做日志文件:
sql> execute dbms_logmnr.add_logfile( - logfilename => 'log2orc1.ora', - options => dbms_logmnr.addfile);
3.开启logminer并限制查询范围
sql> execute dbms_logmnr.start_logmnr( - dictfilename => 'orcldict.ora', - 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:ss'));
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/local/dict.ora');
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();

其它类似信息

推荐信息