Oracle 配置 LOGMINR
通过logminer我们可以实现:
1、确定数据的逻辑损坏的时间;
2、跟踪用户执行的事务变化操作;
3、跟踪表的DML操作;
Logminer 需要
1、开归档(推荐,如果没有启用,只能挖掘联机日志,则效率差);
shutdown immediate
startup mount
alter database archivelog;
alter database open;
2、suppplemental logging;
select name,supplemental_log_data_min from v$database;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
(此操作会增加Oracle数据库的日志量)
SYSDBA用户执行以下脚本:
$ORACLE_HOME/rdbms/admin/dbmslm.sql
$ORACLE_HOME/rdbms/admin/dbmslmd.sql
$ORACLE_HOME/rdbms/admin/dbmslms.sql
(注意:Oracle12c经典安装中只有前两个,但并不影响使用)
使用LOGMNR推荐使用sys用户或system用户(如需使用其他用户需要dba权限)
配置docker-compose.yml
在配置文件中 sourceoracle下: 加上ORACLE_MODE=LOGMINER
在manager下设置 NEED_SWITCH_TOPIC=false
存在的影响:
1、对Oracle执行用户的权限依赖较高,官方推荐使用sys用户;
2、较为依赖归档日志,启用归档日志和加强日志类型后,Oracle会产生大于非归档模式下数倍的日志量,对存储空间的使用较多。但如果不使用归档日志则只能使用联机日志文件,当联机日志文件轮询较快时容易发生数据覆盖,导致数据丢失,另外过于频繁的联机日志文件的轮询会产生Oracle数据库log file sync事件,从而影响数据库服务器的IO,当应用调用Logmnr工具使用联机日志文件时还易引发服务器网络性能下降;
3、较为依赖固定的数据字典信息,使用Logmnr适用于数据字典变化较少的情形下,当Oracle数据字典发生改变则需要重新执行Logmnr配置流程。
测试logmnr
1、show parameter db_recovery_file_dest --找到archive log file所在的路径
2、使用路径下面的任意一个archive log file作为logmnr测试分析使用
3、execute dbms_logmnr.add_logfile(logfilename=>'',options=>dbms_logmnr.new);
4、execute dbms_logmnr.start_logmnr(Options => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG)
5、select count(*) from v$logmnr_contents
领取专属 10元无门槛券
私享最新 技术干货