数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle的日志挖掘


发布日期:2021年07月04日
 
Oracle的日志挖掘

日志挖掘(LogMnr)

①在参数文件中设置utl_file_dir路径

②重启

③创建directory file使用execute dbms_logmnr_dbuild()

④添加日志文件使用dbms_logmnradd_logfile

或删除日志文件使用dbms_logmnrremovefile

⑤启动logmnr使用dbms_logmnrstart_logmnr

⑥查询使用V$logmnr_contents(sqlredo/sqlundo)

设置utl_file_dir目录

alter system set utl_file_dir=D:\app\Leo\utl_file_dir scope=spfile;

建立日志挖掘的数据字典

execute dbms_logmnr_dbuild(shwdictoraD:\app\Leo\utl_file_dir); //第二个参数要与参数utl_file_dir的设置完全匹配

无此包则需执行@d:\oracle\ora\rdbms\admin\dbmslmdsql;

创建分析的文件列表(可以是在线或归档日志)

execute dbms_logmnradd_logfile(D:\app\Leo\archivelog\ARC_dbms_logmnrnew);

execute dbms_logmnradd_logfile(D:\app\Leo\archivelog\ARC_dbms_logmnraddfile);

execute dbms_logmnradd_logfile(D:\app\Leo\archivelog\ARC_dbms_logmnraddfile);

optionnew创建一个新的日志列表addfile向列表中添加日志文件

remove_logfile删除

在视图v$logmnr_logs中可以看到添加的日志列表

select log_idfilename from v$logmnr_logs;

开始分析

execute dbms_logmnrstart_logmnr(dictfilename=>D:\app\Leo\utl_file_dir\shwdictora);

execute dbms_logmnrstart_logmnr(dictfilename=>d:\oracle\shwdictorastartscn=>xxxxxxendscn=>xxxxxstarttime=>to_date( ::yyyymmdd hh:mi:ss) endtime=>to_date( ::yyyymmdd hh:mi:ss));

没有建立数据字典使用dbms_logmnrdict_from_online_catalog选项参数则logminer期望在所指定的dbms_logmnradd_logfile或重做日志中找到数据字典

exec sysdbms_logmnrstart_logmnr(options=>sysdbms_logmnrdict_from_online_catalog);

查询分析内容

select to_char(timestampyyyymmdd hh:mi:ss) timesql_redo from v$logmnr_contents where seg_owner=SCOTT;

结束分析

execute dbms_logmnrend_logmnr;

部分日志归档不出的解决

①将数据库至于force logging模式

alter database force logging;

select force_logging from v$database;

②查看表是否处于归档模式

select table_namelogging from user_tables;

③查看数据库是否处于启用了补充日志(启动了则每条update写redo时会附加列值唯一信息)

SQL> select supplemental_log_data_pksupplemental_log_data_ui from v$database;

SUPPLEMENTAL_LOG_DATA_PK SUPPLEMENTAL_LOG_DATA_UI

NO NO

SQL> alter database add supplemental log data (primary keyunique index) columns;

Database altered

SQL> select supplemental_log_data_pksupplemental_log_data_ui from v$database;

SUPPLEMENTAL_LOG_DATA_PK SUPPLEMENTAL_LOG_DATA_UI

YES YES

上一篇:oracle10g新特性—物化视图

下一篇:技巧:Oracle数据库Redo故障恢复