十二、dbms_logmnr(分析重做日志和归档日志)
1、概述
作用:通过使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日志和归档日志所记载的事务变化,最终确定误操作(例如DROP TABLE)的时间,跟踪用户事务操作,跟踪并还原表的DML操作.
2、包的组成
1)、dbms_logmnr.add_logfile
作用:用于为日志分析列表增加或删除日志文件,或者建立日志分析列表。
语法:dbms_logmnr.add_logfile(LogFileName in varchar2,Option in binary_integer default addfile);
其中LogFileName指定要增加或删除的日志文件名称,Option指定选项(dbms_logmnr.new建立日志分析列表,dbms_logmnr.addfile增加日志文件,dbms_logmnr.removefile删除文件)
2)、dbms_logmnr.start_logmnr
作用:用于启动logmnr会话
语法:dbms_logmnr.start_logmnr(startscn in number default o,endscn in number default 0,
starttime in date default '01-jan-1988',endtime in date default '01-jan-2988',
dictfilename in varchar2 default '',option in binary_integer default 0);
其中startscn指定日志分析的起始scn值,endscn指定日志分析的结束scn值,starttime指定日志分析的起始时间,endtime指定日志分析的结束时间,
dictfilename指定日志分析要使用的字典文件名,option指定logminer分析选项。
3)、dbms_logmnr.end_logmnr
作用:结束logminer会话
语法:dbms_logmnr.end_logmnr
4)、dbms_logmnr.mine_value
作用:用于返回要摘取的列信息,该函数在启动logminer之后调用。
语法:dbms_logmner.mine_value(sql_redo_undo in raw,column_name in varchar2 default '') return varchar2;
其中sql_redo_undo用于指定要摘取的数据(redo_value或undo_value),column_name用于指定要摘取的列(格式:schema.table.column);
5)、dbms_logmnr.column_present
作用:用于确定列是否出现在数据的redo部分或undo部分
语法:dbms_logmnr.column_present(sql_redo_undo in raw,column_name in varchar2 default '') return number;
其中如果列在redo或undo部分存在,则返回1,否则返回0。
6)、dbms_logmnr_d.build
作用:用于建立字典文件
语法:dbms_logmnr_d.build(dictionary_filename in varcahr2,dictionary_location in varchar2,options in number);
其中dictionary_filename指定字段文件名,dictionary_location指定文件所在位置,options指定字典要写入位置(store_in_flat_file:文本文件,store_in_redo_log2:重新日志)
7)、dbms_logmnr_d.set_tablespace
作用:用于改变logminer表所在的表空间
语法:dbms_logmnr_d.set_tablespace(new_tablespace in default varchar2,dict_tablespace in default varchar2,spill_tablespace in default varchar2);
其中new_tablespace指定logminer表所在的表空间,dict_tablespace指定字典表所在表空间,spill_tablespace指定溢出表所在表空间。
3、综合例子
首先建表temp,然后执行dml操作和日志切换操作,生产归档日志。
sqlplus /nolog connect system/manager@test create table temp(cola number,colb varchar2(10)); alter system swith logfile; insert into temp values(9,'A'); update temp set cola=10; commit; alter system switch logfile; delete from temp; alter system switch logfile;
1)、建立字典文件
说明:字典文件用于存放表及对象ID号之间的对应关系。从9i开始,字典信息既可被摘取到字段文件中,也可被摘取到重做日志中。摘取字典信息到字典文件方法如下:
(1)、设置字典文件所在目录
alter system set utl_file_dir="g:\test"
scope=spfile;
(2)、重启Oracle Server
sqlplus /nolog
conn sys/test@test as sysdba
shutdown immediate
startup
(3)、摘取字典信息
begin
dbms_logmnr_d.build(dictionary_filename=>'dict.ora',dictionary_location=>'g:\test\logminer');
end;
2)、建立日志分析列表
(1)、停止Oracle Server并装载数据库
sqlplus /nolog
conn sys/test@test as sysdba
shutdown immediate
startup mount
(2)、建立日志分析列表
begin
dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>'g:\test\arc1\test1.arc');
end;
(3)、增加其他日志文件(可选)
begin
dbms_logmnr.add_logfile(option=>dbms_logmnr.addfile,logfilename=>'g:\test\arc1\test12.arc');
end;
3)、启动LogMiner分析
begin
dbms_logmnr.start_logmnr(dictfilename=>'g:\test\logminer\dict.ora',
starttime=>to_date('2004-04-03:10:10:00','YYYY-MM-DD:HH24:MI:SS'),
endtime=>to_date('2004-04-03:15:30:00','YYYY-MM-DD:HH24:MI:SS'));
end;
4)、查看日志分析结果
说明:日志分析结果只能在当前会话查看。
(1)、显示DML分析结果
select operation,sql_redo,sql_undo from v$logmnr_contents where seg_name='TEMP';
(2)、显示DDL分析结果
select to_cahr(timestamp,'yyyy-mm-dd hh23:mi:ss') time,sql_redo from v$logmnr_contents where sql_redo like '%create%' or sql_redo like '%create%';
(3)、显示在用字典文件
select db_name,filename from v$logmnr_dictionary;
5)、结束LogMiner
execute dbms_logmnr.end_logmnr;
转载于:https://www.cnblogs.com/champaign/p/9468610.html
十二、dbms_logmnr(分析重做日志和归档日志)相关推荐
- oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作
文章目录 一.归档方式 1.1 联机重做日志.归档日志概念 1.2 工作模式 1.3 数据库恢复 1.4 归档模式 (1)启用 (2)查看归档文件被存放的路径以及存放文件的容量: (3)手动进行日志切 ...
- oracle的asmcmd获取归档日志,分析oracle的联机日志和归档日志
logminer和配置 安装logminer 以sqlplus / as sysdba登录系统数据库系统,ORACLE默认安装logminer,如果没有安装,执行SQL脚本安装 --安装logmine ...
- oracle 查看日志组切换状态_Oracle 逻辑结构篇 之 重做日志和归档日志管理(一)...
[关键术语] Redo log file 重做日志文件 Archive log file 归档日志文件 SCN(system change number)系统改变号 Checkpoint 检查点 Lo ...
- oracle 归档日志 重做日志,Oracle的重做日志和归档日志
一. 重做日志文件把对数据文件的修改在写入数据文件之前记录下来.日志文件以一种循环的方式被写入信息.当一个日志组被写满时,回自动向另一个日志组写入.管理员可以手工切换当前日志组.alter syste ...
- mysql归档日志是什么意思_重做日志与归档日志有什么区别?
重做日志redo log file是LGWR进程从Oracle实例中的redo log buffer写入的,是循环利用的.就是说一个redo log file(group) 写满后,才写下一个. 归档 ...
- oracle查看联机日志,oracle联机日志和归档日志
联机日志文件又叫重做日志文件,记录了对数据库修改的信息,包括用户对数据修改和数据库管理员对数据库结构的修改,一个oracle实例有一组或多组联机日志,每组至少包含1个或者多个日志成员,这里要多个日志成 ...
- mysql 归档日志_归档日志管理
数据环境: SQL select * from v$version; BANNER ---------------------------------------------------------- ...
- oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...
- 2021年大数据ELK(二十二):采集Apache Web服务器日志
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...
最新文章
- NAPTR和SRV记录
- QML提供的JavaScript主机环境
- 部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息
- oracle 查看用户状态,Oracle数据库查看用户状态
- Socket简单介绍(通过NSStream)
- cisco 增强型内部网关路由协议EIGRP笔记
- 的序号数据是什么_Excel技巧—一劳永逸制作自动更新序号
- 什么是波导的简并波,矩形波导和圆波导中的简并有何异同
- 无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs
- 记录es几个问题,增删改查,索引创建
- SpringBoot中级篇-打包-第三方jar包
- Java类权限和类成员权限举例解析
- 一键解决WPS中的VBA支持库安装问题
- Centos 远程桌面管理工具
- x光安检图像检测数据集(7500多张图像,VOC标签)
- Android设置沉浸式
- KY-RTI分布仿真技术:附录2 大联邦(构建1000个成员的HLA/RTI仿真系统)
- 2021-11-25 统计学-基于R(第四版)第八章课后习题记录及总结
- 第四篇、代理模式详解(三种)
- Windows11正版下载和Windows10正版下载安装教程