Oracle10g系统管理19

81.LogMiner工具分析DML和DDL操作
确定数据库的逻辑损坏时间
确定事务级要执行的精细逻辑恢复操作
执行后续审计

 

源数据库(source database)
分析数据库(mining database)
LogMiner字典:LogMiner字典必须在源数据库中生成
LogMiner字典用于将对象ID号和数据类型转变为对象名和外部数据格式。


LogMiner配置需求
源数据库和分析数据库
LogMiner字典
重做日志文件

 

补充日志(supplemental logging)
重做日志用于实现例程恢复和介质恢复,这些操作所需要的数据被自动记录在重做日志中。
重做应用可能还需要记载其他列信息到重做日志中,记载其他列的日志过程被称为补充日志。
为了充分利用LogMiner提供的特征,必须激活补充日志。
alter database add supplemental log data;

 

82.提供LogMiner字典有3种选项
使用元数据库数据字典(Online Catalog)
execute DBMS_LOGMNR.START_LOGMNR(
OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG要求数据库必须处于OPEN状态,并且该选项只能用于跟踪DML操作。

 

摘取LogMiner字典到重做日志
为了摘取LogMiner字典到重做日志,要求源数据库必须处于ARCHIVELOG模式,并且该数据库必须处于OPEN状态。
execute DBMS_LOGMNR_D.BUILD(
OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

 

摘取LogMiner字典到字典文件
字典文件用于存放对象ID号和对象名信息。
配置字典文件所在目录
alter system set utl_file_dir=’/u01/logminer’ scope=spfile;
shutdown immediate
startup

建立字典文件
配置了初始化参数UTL_FILE_DIR后,就可以将LogMiner字典信息摘取到字典文件中了,需要注意,建立字典文件时,必须指定STORE_IN_FLAT_FILE选项。
execute DBMS_LOGMNR_D.BUILD(‘dict.ora’,'/u01/logminer’,DBMS_LOGMNR_D.STORE_IN_FLAT_FILE)

 

83.使用LogMiner分析DML操作如下
建立日志分析列表
日志分析列表用于指定要分析的重做日志或归档日志。当将第一个日志文件增加到日志分析列表中时,必须使用DBMS_LOGMNR.NEW选项;当增加其他日志文件时,需要使用DBMS_LOGMNR.ADDFILE选项。
execute DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME=>’…REDO04.LOG’,
OPTIONS=>DBMS_LOGMNR.NEW);
execute DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME=>’…REDO03.LOG’,
OPTIONS=>DBMS_LOGMNR.ADDFILE);
参数LOGFILENAME用于指定要增加的日志文件名称,OPTIONS用于指定日志列表选项(DBMS_LOGMNR.NEW表示建立日志分析列表并增加日志文件,DBMS_LOGMNR.ADDFILE表示增加新的日志文件到日志分析列表,DBMS_LOGMNR.REMOVEFILE表示从日志分析列表中删除日志文件)

 

启动LogMiner
将日志文件增加到日志分析列表后,就可以启动LogMiner分析重做日志或归档日志。使用源数据库数据字典分析重做日志。
execute DBMS_LOGMNR.START_LOGMNR(OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
使用过程START_LOGMNR启动LogMiner时,可以指定起始时间和结束时间,亦可以指定起始SCN和结束SCN。如果不指定,会分析日志文件的所有事务操作。

 

查看日志分析结果
日志分析结构只能在当前会话查看。可以使用SPOOL建立文件。
select username,timestamp,sql_redo from v$logmnr_contents where seg_name=’DEPT’;

 

结束LogMiner
execute DBMS_LOGMNR.END_LOGMNR;

 

84.使用LogMiner分析DDL操作
建立日志分析列表
execute DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME=>’…REDO04.LOG’,
OPTIONS=>DBMS_LOGMNR.NEW);
启动LogMiner
execute DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>’…dict.ora’,
OPTIONS=>DBMS_LOGMNR.DDL_DICT_TRACKING);

查看日志分析结果
select timestamp,sql_redo from v$logmnr_contents
where lower(sql_redo) like ‘%drop table%’;

结束LogMiner
execute DBMS_LOGMNR.END_LOGMNR;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值