查看: 12199|回复: 14

[讨论] 【讨论】Oracle 查询用户做了哪些操作-----日志挖掘,v$logmnr_contentsi

[复制链接]
求职 : 数据库管理员
认证徽章
论坛徽章:
35
ITPUB社区12周年站庆徽章
日期:2013-11-07 10:34:33秀才
日期:2016-02-18 09:24:30秀才
日期:2016-01-21 13:37:04ITPUB14周年纪念章
日期:2015-10-26 17:23:44秀才
日期:2015-09-06 10:42:32天枰座
日期:2015-07-14 10:53:552015年新春福章
日期:2015-03-06 11:59:47喜羊羊
日期:2015-03-04 14:54:42itpub13周年纪念徽章
日期:2014-10-08 15:19:03目光如炬
日期:2014-06-16 06:00:12
发表于 2015-1-7 15:19 | 显示全部楼层 |阅读模式
SQL> select version from v$instance ;


    VERSION
   -----------------
   11.2.0.3.0

今天是20150107,我想查询20150102这天,‘alter tablespace prc add datafile ’增加数据文件这样的操作是谁干的,我把20150102这天当时的归档日志恢复出来之后,进行日志挖掘之后,SELECT * FROM v$logmnr_contents where operation='DDL'  and sql_redo like 'alter tablespace%'
查询到如下:
username,os_username,seesion_info等关键字段显示为'UNKNOWN' ,why?是因为时间过去5天太久了吗??问如何才能查到这些值呢???

QQ截图20150107142024.png



论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08慢羊羊
日期:2015-03-04 14:53:332015年新春福章
日期:2015-03-06 11:58:39
发表于 2015-1-7 15:35 | 显示全部楼层
增加数据库文件,直接看告警日志就行了,这个视图好像不记录增加数据文件的操作吧

使用道具 举报

回复
论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08慢羊羊
日期:2015-03-04 14:53:332015年新春福章
日期:2015-03-06 11:58:39
发表于 2015-1-7 15:39 | 显示全部楼层
有人说是个bug
问题说明:加入所有的redo,调过start_logmnr,查询v$logmnr_contents,
发现username字段、session_info字段都为‘UNKNOWN’。
在11gR1,9i上都存在,但是在Win64的11gR2上没有这个问题。

互联网上搜索,发现可能是如下bug,但是否有patch,下什么patch都需要service id。甲方未提供,单位短期也不可能买。
求助有oracle support账号的达人帮分析兼下载patch。拜谢!

Bug:1959969 "LOGMNR SHOWING NULL VALUES FOR USERNAME COLUMN IN
             V$LOGMNR_CONTENTS
Bug:2998128 "NO INFORMATION ON V$LOGMNR_CONTENTS.SESSION_INFO FOR SOME ENT"
或者
Bug 10129774 – USERNAME VALUE IN V$LOGMNR_CONTENTS CHANGES TO UNKNOWN
fixed in 12.1 database release.

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
35
ITPUB社区12周年站庆徽章
日期:2013-11-07 10:34:33秀才
日期:2016-02-18 09:24:30秀才
日期:2016-01-21 13:37:04ITPUB14周年纪念章
日期:2015-10-26 17:23:44秀才
日期:2015-09-06 10:42:32天枰座
日期:2015-07-14 10:53:552015年新春福章
日期:2015-03-06 11:59:47喜羊羊
日期:2015-03-04 14:54:42itpub13周年纪念徽章
日期:2014-10-08 15:19:03目光如炬
日期:2014-06-16 06:00:12
发表于 2015-1-7 15:48 | 显示全部楼层
lenglngzy 发表于 2015-1-7 15:39
有人说是个bug
问题说明:加入所有的redo,调过start_logmnr,查询v$logmnr_contents,
发现username字段、 ...

网上说在11.2.0.3此bug已fixed了,我的版本就是11.2.0.3拉
如你所说,我的数据库正是WIN6411Gr2 啊

使用道具 举报

回复
论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08慢羊羊
日期:2015-03-04 14:53:332015年新春福章
日期:2015-03-06 11:58:39
发表于 2015-1-7 15:49 | 显示全部楼层
因为这个SESSION_INFO里面的内容是日志从V$SESSION视图里提取的。你沒有進行設置﹐所以沒有﹐列從網上找到的如﹕
create or replace trigger on_logon_trigger
after logon on database
begin  dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;

這個就可以追逐到ip地址。

如果更改时的session还在连接就能查到,如果断开的话,就查不到了.

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
35
ITPUB社区12周年站庆徽章
日期:2013-11-07 10:34:33秀才
日期:2016-02-18 09:24:30秀才
日期:2016-01-21 13:37:04ITPUB14周年纪念章
日期:2015-10-26 17:23:44秀才
日期:2015-09-06 10:42:32天枰座
日期:2015-07-14 10:53:552015年新春福章
日期:2015-03-06 11:59:47喜羊羊
日期:2015-03-04 14:54:42itpub13周年纪念徽章
日期:2014-10-08 15:19:03目光如炬
日期:2014-06-16 06:00:12
发表于 2015-1-7 15:50 | 显示全部楼层
lenglngzy 发表于 2015-1-7 15:49
因为这个SESSION_INFO里面的内容是日志从V$SESSION视图里提取的。你沒有進行設置﹐所以沒有﹐列從網上找到的 ...

谢谢,这是五天前的了,会话肯定早没有了

使用道具 举报

回复
论坛徽章:
466
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:22海蓝宝石
日期:2012-02-20 19:24:27铁扇公主
日期:2012-02-21 15:03:13
发表于 2015-1-7 15:58 | 显示全部楼层
select * from dba_his_active_sess_history 看能不能得到一点有用的。。。

使用道具 举报

回复
论坛徽章:
1
优秀写手
日期:2014-03-14 06:00:13
发表于 2015-1-7 16:00 | 显示全部楼层
如果你运用的是这样dbms_logmnr.dict_from_online_catalog 选项的话,可能造成这个问题。尝试 使用外部字典来看看。dbms_logmnr.start_logmnr(dictfilename=>'D:\my_files\dictionary.ora');

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
35
ITPUB社区12周年站庆徽章
日期:2013-11-07 10:34:33秀才
日期:2016-02-18 09:24:30秀才
日期:2016-01-21 13:37:04ITPUB14周年纪念章
日期:2015-10-26 17:23:44秀才
日期:2015-09-06 10:42:32天枰座
日期:2015-07-14 10:53:552015年新春福章
日期:2015-03-06 11:59:47喜羊羊
日期:2015-03-04 14:54:42itpub13周年纪念徽章
日期:2014-10-08 15:19:03目光如炬
日期:2014-06-16 06:00:12
发表于 2015-1-7 16:06 | 显示全部楼层
yezhizi_weixb 发表于 2015-1-7 16:00
如果你运用的是这样dbms_logmnr.dict_from_online_catalog 选项的话,可能造成这个问题。尝试 使用外部字典 ...

对呀,我就是使用的外部字典呀

使用道具 举报

回复
求职 : 数据库管理员
认证徽章
论坛徽章:
35
ITPUB社区12周年站庆徽章
日期:2013-11-07 10:34:33秀才
日期:2016-02-18 09:24:30秀才
日期:2016-01-21 13:37:04ITPUB14周年纪念章
日期:2015-10-26 17:23:44秀才
日期:2015-09-06 10:42:32天枰座
日期:2015-07-14 10:53:552015年新春福章
日期:2015-03-06 11:59:47喜羊羊
日期:2015-03-04 14:54:42itpub13周年纪念徽章
日期:2014-10-08 15:19:03目光如炬
日期:2014-06-16 06:00:12
发表于 2015-1-7 16:17 | 显示全部楼层
引用rollingpigb版主的回复:http://www.itpub.net/thread-653797-1-1.html
v$session 里的 session_info <>v$logmnr_contents 里的session_info
v$session 里的session_info 是程序通过
dbms_application_info.set_client_info 去设置的一个值。

而 v$logmnr_contents 里的session_info是根据session的几个信息集合起来的一个聚合信息,正如
914474595 2006-10-16 23:17:16 386 46102 USER1 login_username=USER1 client_info= OS_username= Machine_name=AAGD-ASPWEB2 OS_terminal= OS_process_id=1234 OS_program_name ,可以让你判断出redo entry对应session  info.

但是,redo log 里面并不记录具体的session信息,而是仅仅有一个sid/serial#或者session_address.所以,事实上,v$logmnr_contents 里的session_info 是根据
A. 如果使用了use_online_catalog选项的话 ,会去对应当前logon 着的 session 的信息,如果redo log 里对应的session 还在当前系统中的话。
B.如果用dictionary file 的话,在产生dictionary file 的时候,也会记录当时logon 着的 session 的信息,如果最终redo log里的session 的信息在dictionary file 中,就会有session_info的信息
当然,如果session早就退出了,v$logmnr_contents中的session_info就无从找到了……

使用道具 举报

回复

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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表