暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

ORACLE日志挖掘

原创 WALL.E 2024-07-02
784

redo日志和归档日志挖掘

1.生产环境日志在测试环境挖掘

生产环境为11G,测试环境为12C

1.1生产库创建目录,生成字典文件

SQL> CREATE OR REPLACE DIRECTORY MYDATA AS '/path/to/directory'; set line 999 pages 999 col OWNER for a10 col DIRECTORY_NAME for a25 col DIRECTORY_PATH for a80 select * from dba_directories; OWNER DIRECTORY_NAME DIRECTORY_PATH ---------- ------------------------- -------------------------------------------------------------------------------- SYS GGS_DDL_TRACE /u01/app/oracle/diag/rdbms/racdb/racdb1/trace SYS MYDATA /dump SYS XMLDIR /u01/app/oracle/product/11.2.0.4/db_1/rdbms/xml SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0.4/db_1/ccr/hosts/rac1/state SYS DATA_PUMP_DIR /u01/app/oracle/product/11.2.0.4/db_1/rdbms/log/ SYS ORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/product/11.2.0.4/db_1/ccr/state SQL> exec dbms_logmnr_d.build(dictionary_filename=>'dic.ora',dictionary_location=>'MYDATA'); [oracle@rac1 dump]$ ll /dump/dic.ora -rw-r--r-- 1 oracle asmadmin 46811703 Jun 20 14:10 /dump/dic.ora

1.2将字典文件dic.ora和日志文件传至测试环境

[root@oracledb ~]# chown oracle. /tmp/dic.ora [root@oracledb ~]# ll /tmp/dic.ora -rw-r--r-- 1 oracle oinstall 46811703 Jun 20 14:27 /tmp/dic.ora [root@oracledb ~]# chown oracle. /tmp/redo01.log [root@oracledb ~]# ll /tmp/redo01.log -rw-r--r-- 1 oracle oinstall 35186688 Jun 20 14:34 /tmp/redo01.log

1.3 添加重做日志文件

SYS@ORCL>exec dbms_logmnr.add_logfile('/tmp/redo01.log',dbms_logmnr.new);

1.4启动 LogMiner 会话

SYS@ORCL>exec DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => '/tmp/dic.ora'); --OPTIONS 为使用在线数据字典 --DICTFILENAME 为使用字典文件 --两选项互相冲突 SYS@ORCL>exec DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => '/tmp/dic.ora',options=>dbms_logmnr.dict_from_online_catalog); ERROR at line 1: ORA-01298: conflicting dictionary option ORA-06512: at "SYS.DBMS_LOGMNR", line 58 ORA-06512: at line 1 --logmnr包相关描述,根据需要添加选项 SYS@ORCL>desc DBMS_LOGMNR PROCEDURE START_LOGMNR Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- STARTSCN NUMBER IN DEFAULT ENDSCN NUMBER IN DEFAULT STARTTIME DATE IN DEFAULT ENDTIME DATE IN DEFAULT DICTFILENAME VARCHAR2 IN DEFAULT OPTIONS BINARY_INTEGER IN DEFAULT

1.5查询所需要的数据

--查询SCOTT用户下EMP表的DROP操作 select scn,sql_redo from v$logmnr_contents where lower(sql_redo) like 'drop%' and seg_name='EMP' and seg_owner='SCOTT';

1.6结束 LogMiner 会话

EXEC DBMS_LOGMNR.END_LOGMNR();

2.直接在当前环境挖掘

2.1查询日志所在目录

--查询redo日志 SQL> select member from v$logfile; --查询归档日志 SQL> archive log list

2.2添加重做日志文件

exec dbms_logmnr.add_logfile('+FRA/racdb/onlinelog/redo01.log',dbms_logmnr.new); --如果是正在运行的数据库,最好是切换几次日志文件后使用归档日志挖掘 SQL> alter system switch logfile;

2.3启动 LogMiner 会话

exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog); --OPTIONS 为使用在线数据字典 --DICTFILENAME 为使用字典文件 --两选项互相冲突 SYS@ORCL>exec DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => '/tmp/dic.ora',options=>dbms_logmnr.dict_from_online_catalog); ERROR at line 1: ORA-01298: conflicting dictionary option ORA-06512: at "SYS.DBMS_LOGMNR", line 58 ORA-06512: at line 1

2.4查询数据

--查询SCOTT用户下EMP表的DROP操作 select scn,sql_redo from v$logmnr_contents where lower(sql_redo) like 'drop%' and seg_name='EMP' and seg_owner='SCOTT';

2.5结束 LogMiner 会话

EXEC DBMS_LOGMNR.END_LOGMNR();
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论