广告
返回顶部
首页 > 资讯 > 数据库 >logminer操作步骤
  • 459
分享到

logminer操作步骤

2024-04-02 19:04:59 459人浏览 薄情痞子
摘要

前提: 1 数据可以归档模式也可以非归档模式。 2 需要调整supplemental_log_data_min才能进行日志挖掘。 sys@oratest1(test-for-lihb)> selec&

前提:
1 数据可以归档模式也可以非归档模式。
2 需要调整supplemental_log_data_min才能进行日志挖掘。
sys@oratest1(test-for-lihb)> select supplemental_log_data_min from v$database;
SUPPLEME
--------
NO
sys@oratest1(test-for-lihb)> alter database add supplemental log data;
Database altered.
 sys@oratest1(test-for-lihb)> select supplemental_log_data_min from v$database;
 SUPPLEME
 --------
 YES
3 日志挖掘是基于session的,如果session退出,需要重新挖掘。




步骤:
1 查看当前在线日志文件使用情况:
sys@oratest1(test-for-lihb)> select * from v$log;
GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE  MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME   NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- ------------------- ------------ -------------------
1    1     565   52428800   5122 NO  CURRENT       8490175 2017-11-13 10:37:37   2.8147E+14
2    1     563   52428800   5122 NO  INACTIVE       8481985 2017-11-13 07:00:208489600 2017-11-13 10:21:05
3    1     564   52428800   5122 NO  INACTIVE       8489600 2017-11-13 10:21:058490175 2017-11-13 10:37:37

2 创建路径
sys@oratest1(test-for-lihb)> CREATE DIRECTORY utlfile AS '/home/oracle/logmnr';
Directory created.

3 修改参数
sys@oratest1(test-for-lihb)> alter system set utl_file_dir='/home/oracle/logmnr' scope=spfile;
System altered.

4 建/home/oracle/logmnr目录,重启数据库使utl_file_dir参数生效
[oracle@test-for-lihb ~]$ mkdir -p /home/oracle/logmnr
sys@oratest1(test-for-lihb)> shutdown immediate
sys@oratest1(test-for-lihb)> startup

5 创建数据字典文件
sys@oratest1(test-for-lihb)> EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/logmnr');
PL/sql procedure successfully completed.

6 查看日志文件物理位置(也可以查看归档文件)
sys@oratest1(test-for-lihb)> select * from v$logfile;
GROUP# STATUS     TYPE     MEMBER  IS_
---------- ---------- ------------------------------ ------------------------------------------------------------ ---
1      ONLINE     /opt/app/oracle/oradata/ORATEST1/onlinelog/o1_mf_1_dhl9h7tz_.log              NO
1      ONLINE     /opt/app/oracle/fast_recovery_area/ORATEST1/onlinelog/o1_mf_1_dhl9h8bn_.log  YES
2      ONLINE     /opt/app/oracle/oradata/ORATEST1/onlinelog/o1_mf_2_dhl9h8mc_.log NO
2      ONLINE     /opt/app/oracle/fast_recovery_area/ORATEST1/onlinelog/o1_mf_2_dhl9h91y_.log YES
3      ONLINE     /opt/app/oracle/oradata/ORATEST1/onlinelog/o1_mf_3_dhl9h98x_.log   NO
3      ONLINE     /opt/app/oracle/fast_recovery_area/ORATEST1/onlinelog/o1_mf_3_dhl9h9y1_.log  YES
6 rows selected.

7 模拟scott用户插入数据
scott@oratest1(70)> truncate table T;
Table truncated.

scott@oratest1(70)> insert into t values (10086);
1 row created.

scott@oratest1(70)> insert into t values (10087);
1 row created.

scott@oratest1(70)> insert into t values (10088);
1 row created.

scott@oratest1(70)> insert into t values (10089);
1 row created.

scott@oratest1(70)> commit;
Commit complete.

8 加入日志文件(一个日志组如果有多个成员,只需要加入一个即可,因为同一日志组所有成员内容是相同的。)
第一个日志文件参数是dbms_logmnr.NEW
BEGIN
dbms_logmnr.add_logfile(logfilename=>'/opt/app/oracle/oradata/ORATEST1/onlinelog/o1_mf_3_dhl9h98x_.log',options=>dbms_logmnr.NEW);
END;
/

后续的日志文件参数是dbms_logmnr.ADDFILE
BEGIN
dbms_logmnr.add_logfile(logfilename=>'/opt/app/oracle/oradata/ORATEST1/onlinelog/o1_mf_1_dhl9h7tz_.log',options=>dbms_logmnr.ADDFILE);
dbms_logmnr.add_logfile(logfilename=>'/opt/app/oracle/oradata/ORATEST1/onlinelog/o1_mf_2_dhl9h8mc_.log',options=>dbms_logmnr.ADDFILE);
END;
/

9 开始日志挖掘
无限制挖掘:
EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/dictionary.ora');
特定时间段挖掘(未测试):
EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/dictionary.ora',StartTime =>to_date('2013-6-8 00:00:00','YYYY-MM-DD HH24:MI:SS')EndTime =>to_date(''2013-6-8 23:59:59','YYYY-MM-DD HH24:MI:SS '));

10 查看挖掘结果
sys@oratest1(test-for-lihb)> select sql_redo from v$logmnr_contents where username='SCOTT';
。。。
insert into "SCOTT"."T"("ID") values ('10086');
insert into "SCOTT"."T"("ID") values ('10087');
insert into "SCOTT"."T"("ID") values ('10088');
insert into "SCOTT"."T"("ID") values ('10089');
。。。。

11 关闭日志挖掘。
EXECUTE DBMS_LOGMNR.END_LOGMNR;

您可能感兴趣的文档:

--结束END--

本文标题: logminer操作步骤

本文链接: https://www.lsjlt.com/news/49889.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql中多个字段in的用法
    sql 中针对多个字段使用 in 操作符有两种方法:通过子查询或直接列出多个值。子查询用于从其他查询中检索值,而多个值可以用逗号分隔直接列出。in 操作符检查给定值是否在指定值的列表中。...
    99+
    2024-04-28
  • sql中all的用法
    all运算符用于将多个查询结果的所有行组合,与distinct相反后者仅返回唯一行。它用于返回所有行,忽略重复,并处理null值。与distinct的区别在于all会返回所有行,包括重复...
    99+
    2024-04-28
  • sql中不等于某个条件怎么写
    sql 中使用 运算符表示不等于某个条件,示例如下:select * from table_name where column_name 'value'; SQ...
    99+
    2024-04-28
  • sql中不等于null怎么表示
    sql 中不等于 null 的表示为:is not null。该运算符用于检查一个表达式是否不等于 null,并返回一个布尔值:如果表达式不等于 null,则返回 true;否则,返回 ...
    99+
    2024-04-28
  • sql中不等于0怎么写
    在 sql 中,判断一个值是否不等于 0,可以使用不等号运算符 !=,语法为:expression != 0。例如,查找所有不等于 0 的记录时,可以使用 select * f...
    99+
    2024-04-28
    mysql
  • sql中loop的用法
    loop是t-sql中一种控制结构,用于反复执行语句块,直至满足特定条件。它提供循环控制、灵活性、简洁性,但也需注意退出条件和潜在的无限循环。 SQL 中 LOOP 用法 什么是 LO...
    99+
    2024-04-28
  • sql中group by什么意思
    group by 子句用于将数据分组,并根据组别进行聚合操作。它将具有相同值的行的组分组在一起,并在每个组内计算汇总值或筛选数据。 GROUP BY:数据分组 在 SQL 中,GROU...
    99+
    2024-04-28
    聚合函数
  • sql中like表示什么
    sql like 运算符用于进行模式匹配,语法是 select * from table_name where column_name like pattern; 模...
    99+
    2024-04-28
  • sql中*的用法
    sql 中的 * 是一个通配符,具有以下用法:查询所有列:select * from table_name;别名为所有列:select * as all_column...
    99+
    2024-04-28
    聚合函数
  • sql中^是什么意思
    sql中的^符号代表按位异或运算,用于比较两个二进制位并返回一个新位。规则为:0 ^ 0 = 0,0 ^ 1 = 1,1 ^ 0 = 1,1 ^ 1 = 0。用途包括:设置或取消标志位,...
    99+
    2024-04-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作