经常遇到开发的需求,帮我查一下是谁修改了表里面的记录,是谁对表进行了DDL操作,此类问题可以使用logmnr解决

1.根据操作时间定位归档日志

SELECT name FROM V$ARCHIVED_LOG WHERE CREATOR='ARCH' AND FIRST_TIME BETWEEN TO_DATE('','') AND TO_DATE('','');

2.将归档日志加载进logmnr

EXEC  SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxx/xxx/1_158827_757933172.dbf');

3.打开logmnr

EXEC  SYS.DBMS_LOGMNR.START_LOGMNR(OPTIONS=>16);

4.从视图根据条件查找

SELECT * FROM V$LOGMNR_CONTENTS  WHERE TABLE_NAME='XXXXXX' AND OPERATION='DELETE';

5.关闭logmnr

exec  SYS.DBMS_LOGMNR.END_LOGMNR;

但是从上面得到的信息中,发现OS_USERNAME和MACHINE_NAME是空的,没有这两个我们是没有办法定位到人的,而这两个为空的原因是这个人很早就登录了,做操作是之后才做的,所以他的登录信息需要从之前的归档里面查找。但是因为一上午产生的归档特别多,为了不对生产库产生影响,我决定在DG库里面把归档scp到测试库,在测试库里面使用logmnr进行挖掘。但是因为测试库里面没有对应的数据字典,所以用logmnr出来的东西里面对象都会变成数字,所以我们需要根据SESSION#和SERIAL#进行查找

6.查找操作者的SESSION#和SERIAL#

从上面的第四步就可以找到,分别是23001和42363

7.将归档scp到测试库

8.在测试库重复logmnr过程,这里打开logmnr的时候不要加options=>16参数,不然会报错DBID不一样

EXEC  SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158827_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158828_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158829_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158830_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158831_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158832_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158833_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158834_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158835_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158836_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158837_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158838_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158839_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158840_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158841_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158842_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158843_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158844_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158845_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.ADD_LOGFILE('/xxxxxx/xxxxxx/1_158846_757933172.dbf');
EXEC SYS.DBMS_LOGMNR.START_LOGMNR();
SELECT /*+rule*/* FROM V$LOGMNR_CONTENTS WHERE SESSION#= 23001 and SERIAL#=42363;
exec SYS.DBMS_LOGMNR.END_LOGMNR;

记一次使用logmnr查找操作人流程的更多相关文章

  1. 二叉排序树(BST)创建,删除,查找操作

    binary search tree,中文翻译为二叉搜索树.二叉查找树或者二叉排序树.简称为BST 一:二叉搜索树的定义 他的定义与树的定义是类似的,也是一个递归的定义: 1.要么是一棵空树 2.如果 ...

  2. Go基础之--排序和查找操作

    排序操作主要都在sort包中,导入就可以使用了import("sort") 常用的操作 sort.Ints:对整数进行排序sort.Strings:对字符串进行排序sort.Flo ...

  3. MongoDB学习(查找文档和其他数据查找操作)

    理解Cursor对象和查询运算符 cursor对象 cursor对象相当于一个指针,可通过迭代它来访问MongdoDB数据库中的一组对象. 在使用 find() 方法查询时,返回的并非实际文档,而是一 ...

  4. DataGrid 查出一个列 按要求显示格式 例如:操作人(地点)

    这是转换DataGrid显示格式之后 连接字符串的方法 显示:操作人(地点) public static ObservableCollection<CListModel> AllUserL ...

  5. WPF DataGrid 列显示0,-1(作废、删除)状态,1,2(支出、收入)类型,操作人(在其他表中),如何转换格式。

    操作人,左联,Join on letf //容我补充 状态,类型,类似的转换,在xmlns中引入common   xmlns:com="clr-namespace:XXX.Common&qu ...

  6. This is my first blog----文件操作基本流程

    一,文件操作基本流程. 计算机系统分为: 计算机硬件, 操作系统, 应用程序三部分 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件 ...

  7. Django的ORM常用查找操作总结

    作者:python技术人 博客:https://www.cnblogs.com/lpdeboke/ 首先这里给出一个用户信息model class UserModel(models.Model): u ...

  8. vim的高亮查找操作

    使用了VIM这么久,却一直无法牢记一些基本的操作指令.今天查找一个关键字时,想不起来怎么查找“下一个”,于是google之并解决,顺便把有用的都贴过来罢. 查找指令:/xxx 往下查找?xxx 往上  ...

  9. [Linux] vim的高亮查找操作

    reference :  http://blog.chinaunix.net/uid-20732478-id-763411.html 使用了VIM这么久,却一直无法牢记一些基本的操作指令.今天查找一个 ...

随机推荐

  1. spring boot 项目使用idea正常打包后执行总是出现异常,解决办法

    众所周知,spring boot 在构建项目时,确实为Java程序员们省了不少力气,打包项目非常容易. 上周在项目中遇到打包后的项目总是无法运行,困扰了我们团队将近两天才找到原因. 图和真相在这里.

  2. 2020-2021-1 20209307《Linux内核原理与分析》第五周作业

    一.理论知识 系统调用:操作系统为用户态进程与硬件设备进行交互提供的一组接口. 系统调用的三层皮:API(应用程序接口),中断向量system_call,中断服务程序sys_xyz 宏观上Linux操 ...

  3. glances linux资源使用监控

    安装 yum install glances -y 界面 介绍 命令选项 -b:显示网络连接速度 Byte/ 秒 -B @IP|host :绑定服务器端 IP 地址或者主机名称 -c @IP|host ...

  4. oranges 笔记第六章

    OS 第六次实验随笔 第六章6.1-6.3相关的问题 进程状态保存与恢复 哪些状态 何时保存 保存在哪 如何恢复 特权级变换 用户进程到内核 内核回到用户进程 再次理解TSS .堆栈 从外环进入内环( ...

  5. Python之excel第三方库xlrd和xlwt

    Python读取excel表格的库xlrd,首先安装xlrd: pip3 install xlrd 代码: #!usr/bin/env python3 #!-*-coding=utf-8 -*- '' ...

  6. 学习JUC源码(3)——Condition等待队列(源码分析结合图文理解)

    前言 在Java多线程中的wait/notify通信模式结尾就已经介绍过,Java线程之间有两种种等待/通知模式,在那篇博文中是利用Object监视器的方法(wait(),notify().notif ...

  7. ASP.NET网站部署到服务器IIS上和本地局域网服务器

    控制面板>>>管理工具>>>打开Internet信息服务 2,如果找不到 可以控制面板>>>程序和功能>>>  打开或关闭win ...

  8. (十一)、head--查看文件前若干部分,tail--查看文件后若干部分

    一.命令描述与格式 head用于查看文件前面部分,tail用于查看文件的末尾部分 格式:head/tail    [-选项]   文件 head选项: -c:处理文件若干字节数,加b.k.m -n:前 ...

  9. 高并发redis分布式锁

    1.方法一 2方法二

  10. ElasticSearch设置用户名密码访问

    版本号:7.3.1 1.需要在配置文件中开启x-pack验证, 修改config目录下面的elasticsearch.yml文件,在里面添加如下内容,并重启. xpack.security.enabl ...