`
wsql
  • 浏览: 11794730 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

OracleLogMiner学习和使用

 
阅读更多
logmnr可以对用户发出的sql语句进行跟踪,例如由于某个管理员修改数据时错误地把张三的工资修改了,这时使用logmnr可以知道张三的工资在修改前的值和修改后的值。通过logmnr可以把张三的工资恢复到修改前的状态。
  安装LogMiner:
  $oracle_home/rdbms/admin/dbmslm.sql --用来创建dbms_logmnr包,该包分析日志文件
  $oracle_home/rdbms/admin/dbmslmd.sql --用来创建dbms_logmnr_d包,创建数据字典文件
  在运行这两个脚本的时候要以sys用户身份运行。
  LogMiner使用产生日志文件的服务器来分析重做日志文件,重做日志文件来自当前数据库
  LogMiner不解释重做日志的DDL语句,如drop table这样的ddl语句
  LogMiner将不会重构原始的无日志的sql操作,如果在数据字典上的DML操作结果将被记录到日志文件里
  使用LogMiner分析庞大数据的重做信息,是一件非常耗费时间的事情
  无论源数据还是被分析的数据库都必须同时使用相同的操作硬件平台系统,都必须使用相同的字符集
  LogMiner将显示未提交的事务,因为重做日志包含提交的和未提交的数据。
  LogMiner分析重做日志文件的操作:
  1. 使用LogMiner存储过程创建一个外部数据字典文件
  2. 然后使用另一个存储过程创建一个被分析的重做文件的列表
  3. 最后执行另一个存储过程来启动LogMiner
  LogMiner重要的过程和视图
  过程
  dbms_logmnr_d.build 创建一个数据字典文件
  dbms_logmnr.add_logfile 在列表中增加日志文件以供分析
  dbms_logmnr.start_logmnr 使用一个个可选的字典文件和前面确定要分析的日志文件来启动LogMiner
  dbms_logmnr.end_logmnr 停止LogMiner分析
  视图
  v$logmnr_dictionary 显示用来决定对象ID名称的字典文件的信息
  v$logmnr_logs 在LogMiner启动时显示被分析的日志列表
  v$logmnr_contents LogMiner启动后,可以使用这个视图在sql提示符下输入sql语句来查询重做日志的内容
  执行任务:
  1. 创建数据字典:
  产生确定数据字典的重要性:LogMiner将使用这个文件将对象标识转化成一个为意义的名字,它的信息保存到PGA内存区,应该确保系统必须有足够的内存空间,因为这种操作需要很大的内存,如果没有数据字典则需要较少的PGA内存空间。
  sql> execute dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location => 'c:\oracle\rman\ch10');
  2. 产生数据库操作
  比如:对一个表进行增删查改的操作。
  这些操作语句的重做信息将被保存在当前联机重做日志文件中,可以从v$log视图里面找出日志seq号,然后进行一个强制日志切换,使当前联机日志归档,运行logMiner分析这个新归档的日志文件(如:102.arc是新归档的日志文件)。
  sql> select sequence# from v$log where status = 'CURRENT'
  sql> alter system switch logfile;
  3. 为分析指定日志文件
  LogMiner将分析一个指定的日志文件,所以必须创建一个可供分析的日志文件列表。增加的日志文件将显示在v$logmnr_logs视图里
  sql> select db_name, thread_sqn,filename from v$logmnr_logs;
  前一个任务中sql所做的改变保存在序号为102的日志文件里,那么这里在logminer分析前添加这个日志文件和前面的两个文件
  begin
  dbms_logmnr.add_logfile(logfilename => '/oradata/dba/backup/ch10/100.arc', options => dbms_logmnr.NEW);
  dbms_logmnr.add_logfile(logfilename => '/oradata/dba/backup/ch10/101.arc', options => dbms_logmnr.ADDFILE);
  dbms_logmnr.add_logfile(logfilename => '/oradata/dba/backup/ch10/102.arc', options => dbms_logmnr.ADDFILE);
  end;
  /
  dbms_logmnr.new --用于建一个日志分析表
  dbms_logmnr.addfile --用于加,入用于分析的日志文件
  dbms_logmnr.removefile --用于移出,用于分析的日志文件
  查看:sql> select db_name, thread_sqn,filename from v$logmnr_logs;
  可以删除里面的文件,如100.arc没有包含我们想要的信息,可以用REMOVEFILE选项来删除
  sql> execute dbms_logmnr.add_logfile(logfilename => 'd:\oradata\dba\archive\100.arc', option => dbms_logmnr.REMOVEFILE);
  4. 启动LogMiner
  准备好字典文件和日志文件列表后,就可以准备启动LogMiner了
  execute dbms_logmnr.start_logmnr(dictfilename => 'c:\oracle\rman\ch10\dictionary.ora');
  可以指定分析开始的SCN和或结束的SCN,开始的时间和或结束时间。
  execute dbms_logmnr.start_logmnr(dictfilename => 'c:\oracle\rman\ch10\dictionary.ora',startime => to_date(20030501 12:12:00','yyyymmdd hh24:mi:ss'),endtime => to_date(20030501 14:20:00','yyyymmdd hh24:mi:ss'));
  5. 分析日志文件内容
  检查数据库更改的细节:sql> select operation, timestamp,scn from v$logmnr_contents where seg_name = 'EMP' and seg_owner='SCOTT' and seg_type_name = 'TABLE';
  select sql_redo,sql_undo from v$logmnr_contents where seg_name='EMP' and seg_owner='SCOTT' and seg_type_name = 'TABLE';
  select usrnamen, session_info from logmnr_contents where seg_name = 'EMP' and seg_owner='SCOTT' and seg_type_name='TABLE';
  执行容量分析:使用LogMiner不会降低运行时间,而使用表审计则会导致运行时间性能开销过大
  下面为分析数据库表上DML操作提供一些思路与方法:
   select operation, to_char(timestamp,'HH') hour,count(*) total from v$logmnr_contents where seg_name ='DATE_LOG' and seg_owner='TINA' and seg_type_name='TABLE' group by operation, to_char(timestamp,'HH');
  寻找DDL命令的细节:
  select seg_name,operation,scn,timestamp,count(*) from v$logmnr_contents where operation='DELETE' group by seg_name,operation,scn,timestamp order by scn;
  6. 关闭LogMiner
  可以把v$logmnr_contents视图的内容创建一个永久的数据库表将非常有帮助
  sql> create table logmnr_contents as select * from v$logmnr_contents;
  当完成了重做日志的检查,运行dbms_logmnr 中的end_logmnr
  execute dbms_logmnr.end_logmnr(); 来源:考试大-Oracle认证考试
分享到:
评论

相关推荐

    1.OracleLogminer配置使用.pdf

    1.OracleLogminer配置使用.pdf

    3.使用OracleLogminer同步Demo.pdf

    3.使用OracleLogminer同步Demo.pdf

    2.OracleLogminer性能测试.pdf

    2.OracleLogminer性能测试.pdf

    LogMiner.zip

    OracleLogMiner日志工具

    infrared-remote-candroid studiodemo

    android studio下载

    【新质生产力】新质生产力赋能智能制造数字化解决方案.pptx

    【新质生产力】新质生产力赋能智能制造数字化解决方案.pptx

    基于matlab实现的用于应用布格重力异常数据反演地下异常密度体.rar

    基于matlab实现的用于应用布格重力异常数据反演地下异常密度体.rar

    node-v8.10.0-linux-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于Yolov5目标检测和deepsort目标跟踪无人机跟踪.zip

    无人机最强算法源码,易于部署和学习交流使用

    数据库课程设计实战.zip

    数据库课程设计后端 使用Springboot + Mybatis + Redis + Maven 数据库课程设计实战.zip,使用到了所有的相关SQL 的操作,如增删改查等,让你可以在一个项目里面,锻炼到所有的数据库相关的知识。项目亲测可以运行,里面含有运行相关的文档,不会的可以丝我请求帮助。 数据库课程设计后端 使用Springboot + Mybatis + Redis + Maven 具体的表和相关的数据如下: 用户(电话号码,密码,身份证号,邮箱,真实姓名,用户类型,性别,地址) 乘客(用户电话号码,乘客身份证号,乘客真实姓名,乘客电话号码,乘客类型,地址) 列车信息(列车编号,车次,列车类型,列车车厢数,列车始发站,列车终点站,列车开车时间,列车到达时间,列车到达日期,列车运行时间,列车状态) 列车座位信息(列车编号,车厢号,座位类型,座位数) 列车经停信息(列车编号,车次,车站编号,车站名,到达时间,总运行时间,开车时间) 订单信息(订单编号,用户电话号码,乘客身份证号码,列车编号,出发站编号,到达站编号,车厢号,座位编号,订单创建时间,订单状态,开车时间)

    咨询的分析方法gl.ppt

    咨询的分析方法gl.ppt

    node-v10.14.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    2019年电赛无人机题目(B题)OpenMV相关代码

    These're the OpenMV codes written by microPython in 2019 NUEDC. 2019年电赛无人机题目(B题)OpenMV相关代码(原创).zip

    无人机降落TRT版本.zip

    无人机最强算法源码,易于部署和学习交流使用

    熊出没.zip

    熊出没.zip

    基于SpringBoot和Vue的家教信息平台设计与实现.zip

    基于SpringBoot和Vue的家教信息平台设计与实现.zip 有完整的部署指导文档,源码也是完整的,可以直接运行,里面包含了所有的相关步骤。 本文旨在设计和实现一套基于Java技术的家教信息系统,采用Spring Boot框架构建后端服务,MySQL数据库存储数据,Vue.js作为前端框架实现用户界面。该系统旨在解决家教信息管理的问题,包括家教师资信息管理、用户信息管理以及家教入驻等功能。通过综合运用Java、Spring Boot、MySQL和Vue等技术,实现了系统的高效运行和良好的用户体验。系统提供了用户注册、登录、信息查看和编辑等功能,同时支持家教的发布和查看,用户信息的管理以及家教审核的后台管理。家长可以方便地寻找合适的家教老师,家教老师也能够更便捷地管理自己的信息和相关资料。通过本设计,展示了Java技术在现代化家教信息系统中的应用,为家教行业的信息化管理提供了一种有效的解决方案。该系统的设计与实现将为家长、家教老师和用户提供便利,促进家教行业的发展与进步。 关键词:SpringBoot; MySQL; 系统设计; 家教

    利用CNN进行无人售货机的商品识别.zip

    无人机最强算法源码,易于部署和学习交流使用

    node-v11.10.1-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    (R语言)-6-箱线图的绘制

    (R语言)-6-箱线图的绘制

Global site tag (gtag.js) - Google Analytics