LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重做日志文件(归档日志文件)中的具体内容,LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图组成,可以通过它分析在线日志和归档日志获取数据库过往详细、具体的操作,非常有用。 主要出于以下几个缘由:为什么会用到LogMiner?
源库:生成归档日志和在线日志的库
目标库:执行LogMiner进行日志分析的库
字典:英文名为CATALOG,用于把日志中的内部信息翻译成实际的表名、列名等有价值信息
源库与目标库可以是同一个,也可以是不同的。如果不同,要求目标库数据库版本高于或等于源库;字符集要相同;操作系统、硬件平台要相同。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 查看一下结果: SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE; SUPPLEMENTAL_LOG_DATA_MIN -------------------------------- YES
客观的说追加日志不是必需,如果不启用追加日志SESSION_INFO等很多有用的信息解析后都没有,显示会为“UNKNOWN”。
这种方式是Oracle推荐的,适用于在源库做LogMiner,也是最易用的一种方式。
举例:
EXECUTE DBMS_LOGMNR.START_LOGMNR(- OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
2. 把字典放到在线日志文件
适用于源库与目标库不同这样的方式
举例:
EXECUTE DBMS_LOGMNR_D.BUILD( - OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS); 看字典存放到了哪个归档日志: SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES'; SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_END='YES';
3. 把字典生成OS上的一个文件
这样的方式是要是为了兼容9i及之前的版本,实际使用中这样的方式需要在源库设定UTL_FILE_DIR参数,不方便。
EXECUTE DBMS_LOGMNR_D.BUILD('dictionary.ora', - '/oracle/database/', - DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);
Oracle已不推荐这样方式。
1.从磁带库恢复出所需的日志
run { ALLOCATE channel t1 type 'SBT_TAPE' parms 'ENV=(NSR_SERVER=linuxbak,NSR_CLIENT=jfdb1,NSR_DATA_VOLUME_POOL=jfdb)'; set archivelog destination to '/jfdb_arch/yang'; restore archivelog from logseq 247761 until logseq 247763 thread 1; release channel t1; }
2.使用在线字典解析日志
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'/zhjf02_dlbk/yang/zhjf2_2_202749_570073317.arc',OPTIONS => DBMS_LOGMNR.NEW) PL/SQL procedure successfully completed. SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'/zhjf02_dlbk/yang/zhjf2_2_202750_570073317.arc',OPTIONS => DBMS_LOGMNR.ADDFILE) PL/SQL procedure successfully completed. SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.COMMITTED_DATA_ONLY); PL/SQL procedure successfully completed.
3. 查询解析结果
SQL> create table qiuyb.logcontents_2_202749 nologging tablespace TBSI_RAT_32M as select * from V$LOGMNR_CONTENTS ; Table created.
需要说明的是V$LOGMNR_CONTENTS是会话期存在的,其它会话是查不到结果的。因此本例子把结果存放在了一个实体表中。另外,每次查询V$LOGMNR_CONTENTS这个视图都会实际触发一次日志解析,也就是说这个视图的内容不是START_LOGMNR生成的,而是每次查生成的,生成一个实体表也可以大幅降低系统开销。
4.结束LogMiner解析
SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR(); PL/SQL procedure successfully completed.
整个LogMiner会话结束。
1. COMMITTED_DATA_ONLY
顾名思义就是只显示已经提交了的,那些正在进行中的及Oracle内部操作都忽略掉了,5的举例里使用的就是这个选项。
2.PRINT_PRETTY_SQL
SQL_REDO和SQL_UNDO中SQL以易读的方式显示,举例如下:
SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.COMMITTED_DATA_ONLY+DBMS_LOGMNR.PRINT_PRETTY_SQL); PL/SQL procedure successfully completed. SQL> SELECT USERNAME, SEG_OWNER, SEG_NAME, SQL_REDO, SQL_UNDO 2 FROM v$LOGMNR_CONTENTS; 3 WHERE SEG_OWNER NOT IN ('SYS', 'SYSTEM') 4 AND SEG_NAME = 'T2' 5 / USERNAME SEG_OWNER SEG_NAME SQL_REDO SQL_UNDO --------- ----------- ---------- ----------------------------- ------------------------------------ QIUYB QIUYB T2 insert into "QIUYB"."T2" delete from "QIUYB"."T2" values where "ID" = 105, "ID" = 105 and "NAME" = 'test 105', "NAME" = 'test 105' and "FLAG" = 5; "FLAG" = 5 and ROWID = 'AAAUcRAAFAAABj1AAA'; SQL>
4.DDL_DICT_TRACKING
适用于在线日志存放LogMiner字典的情况,当表发生了添加字段等情况,字典自动更新。
举例:
EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => - DBMS_LOGMNR.DDL_DICT_TRACKING + DBMS_LOGMNR.DICT_FROM_REDO_LOGS);
4. NO_SQL_DELIMITER
去掉SQL_REDO及SQL_UNDO中SQL语句最后的分号,以CURSOR方式循环执行解析出的SQL会很方便和快捷。
举例:
EXECUTE DBMS_LOGMNR.START_LOGMNR(- OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
05. NO_ROWID_IN_STMT
在SQL_REDO和SQL_UNDO列语句中去掉ROWID。举例:
EXECUTE DBMS_LOGMNR.START_LOGMNR(- OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
1
适用于在源库以外的其它库重新执行解析出的SQL,因为相应的ROWID在目标库是不存在的。
本文作者杨宝秋,Oracle ACE,十多年的TB级数据库设计、建设、管理、运行维护、调优经验,也做了7年的Hp和IBM Rs6000的系统管理员,而且是获得了BCFP认证的SAN管理员,现为中国联通黑龙江分公司数据库主管。
原文链接:https://www.qiuyb.com/archives/171 (责编/刘亚琼)
本网页所有文字内容由 imapbox邮箱云存储,邮箱网盘, iurlBox网页地址收藏管理器 下载并得到。
ImapBox 邮箱网盘 工具地址: https://www.imapbox.com/download/ImapBox.5.5.1_Build20141205_CHS_Bit32.exe
PC6下载站地址:PC6下载站分流下载
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox 网页视频 工具地址: https://www.imapbox.com/download/ImovieBox4.7.0_Build20141115_CHS.exe
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算