Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

0

好友

14

主题
1#
发表于 2013-3-12 10:00:25 | 查看: 6712| 回复: 6
由于晚上突然归档日志大量增加,用logminer想要查找出原因。
提取一个异常时间段的日志进行logminer挖掘。

OS:Redhat 5.4
DB: 10.2.0.4 RAC

没有设置任何supplement log
  1. SQL> select supplemental_log_data_min,
  2.   2         supplemental_log_data_pk,
  3.   3         supplemental_log_data_ui,
  4.   4         supplemental_log_data_fk,
  5.   5         supplemental_log_data_all
  6.   6    from v$database;

  7. SUPPLEME SUP SUP SUP SUP
  8. -------- --- --- --- ---
  9. NO       NO  NO  NO  NO
复制代码
通过下面语句查询出最多的执行seg_owner和对应operation

  1. select seg_owner,operation,count(*) from v$logmnr_contents group by seg_owner,operation;
  2. seg_owner operation count(*)
  3. -------- ------ ------
  4. A       DELETE  1896635  
复制代码
通过以下语句查找上面对应的sql操作

  1.   select sql_redo,username,count(*) from v$logmnr_contents where operation='DELETE' and seg_owner='A' group by username,sql_redo;
  2. sql_redo username count(*)
  3. -------- ------ ------
  4. /* No SQL_REDO for temporary tables */     UNKNOWN  1896635  
复制代码
疑问:
1.为什么sql中没有显示具体sql,username也查找不到?

2.我使用的是toad中的logminer,这里toad是使用哪种方式生成数据字典?
2#
发表于 2013-3-12 10:19:59
http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm#i1016853

LogMiner does not generate SQL redo or SQL undo for temporary tables. The SQL_REDO column will contain the string "/* No SQL_REDO for temporary tables */" and the SQL_UNDO column will contain the string "/* No SQL_UNDO for temporary tables */".

回复 只看该作者 道具 举报

3#
发表于 2013-3-12 10:54:00
sykace 发表于 2013-3-12 10:19
http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm#i1016853

LogMiner does not gener ...

那目前这种情况只能判断出对哪个temp的表做操作,做什么操作就无法判断了咯

回复 只看该作者 道具 举报

4#
发表于 2013-3-12 12:07:56
fluttersnow 发表于 2013-3-12 10:54
那目前这种情况只能判断出对哪个temp的表做操作,做什么操作就无法判断了咯 ...

建议你配合 挖掘AWR和ASH一起看

回复 只看该作者 道具 举报

5#
发表于 2013-3-12 14:37:40
Maclean Liu(刘相兵 发表于 2013-3-12 12:07
建议你配合 挖掘AWR和ASH一起看


确认执行大量DELETE的临时表为TEMP_REST,做了个1小时的awr,查询
  1. SQL ordered by Gets

  2. Buffer Gets        Executions        Gets per Exec        %Total        CPU Time (s)        Elapsed Time (s)         SQL Id        SQL Module        SQL Text
  3. 62,012,977        5,624        11,026.49        60.77        755.72        768.14        34v2tcm3r80jc         JDBC Thin Client        BEGIN p_matchProvideRes( ...
  4. 45,868,193        5,624        8,155.80        44.95        534.17        542.26        8zgpq15rjtxz7         JDBC Thin Client        DELETE FROM TEMP_REST
  5. 13,313,540        5,624        2,367.27        13.05        135.66        139.90        8prjhgrpvx46c         JDBC Thin Client        INSERT INTO TEMP_REST ( SELECT....
复制代码
前三执行次数都是一样的,查询为 p_matchProvideRes这个存储引发都2条DML,这样可以确定对这张表的操作是啥。

ML,还有个问题:

我使用的是toad中的logminer,这里toad是使用哪种方式生成数据字典提供给logminer的?

回复 只看该作者 道具 举报

6#
发表于 2013-3-12 15:08:29
fluttersnow 发表于 2013-3-12 14:37
确认执行大量DELETE的临时表为TEMP_REST,做了个1小时的awr,查询前三执行次数都是一样的,查询为 p_match ...

这你要问 开发toad的人, 或者你 trace下toad的行为

回复 只看该作者 道具 举报

7#
发表于 2013-3-13 11:10:58
Maclean Liu(刘相兵 发表于 2013-3-12 15:08
这你要问 开发toad的人, 或者你 trace下toad的行为

做了个trace,发现如下字段
  1. Begin
  2.   SYS.DBMS_LOGMNR.START_LOGMNR
  3.   (
  4.    Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG+sys.dbms_logmnr.COMMITTED_DATA_ONLY
  5.   );
  6. end;
复制代码
可以确定是使用online catalog的方式提供的数据字典

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 09:02 , Processed in 0.054629 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569