WEB开发网
开发学院数据库Oracle Oracle数据库备份与恢复(6):LogMiner 阅读

Oracle数据库备份与恢复(6):LogMiner

 2008-11-05 11:43:41 来源:WEB开发网   
核心提示: 6.4 使用LogMiner 进行分析 6.4.1 设定用于LogMiner分析的日志文件存放的位置 设置 UTL_FILE_DIR,需要重启数据库,Oracle数据库备份与恢复(6):LogMiner(2), 设置 utl_file_dir=* 表示你能操作任何目录 在 initsid.ora 文

   6.4 使用LogMiner 进行分析

   6.4.1  设定用于LogMiner分析的日志文件存放的位置

   设置  UTL_FILE_DIR,需要重启数据库。

   设置  utl_file_dir=*     表示你能操作任何目录

   在 initsid.ora 文件中加入 utl_file_dir参数或者:

   SQL> alter system set utl_file_dir='d:' scope=spfile;

   SQL> shutdown immediate

   SQL> starup

   6.4.2  生成数据字典文件

   SQL>

   BEGIN

   2      dbms_logmnr_d.build(

   3        dictionary_filename => 'logminer_dict.dat',

   4        dictionary_location => '/u01/arch'

   5      );

   6   END;

   7 /

   dictionary_location指的是 Logminer数据字典文件存放的位置,它必须匹配 utl_file_dir的 设定。

   dictionary_filename指的是放于存放位置的字典文件的名字,名字可以任意取。

   6.4.3  建立日志分析表

   建立日志分析表数据库必须在 mount或 nomount 状态建立日志分析表,使用 dbms_logmnr.add_logfile() SQL> BEGIN 2      dbms_logmnr.add_logfile(3      options => dbms_logmnr.new,4      logfilename => '/u01/arch/arc_ctc_0503.arc' 5      );6   END;7 /其中的 options有三种取值,dbms_logmnr.new      用于建一个日志分析表 dbms_logmnr.addfile  用于加入用于分析的的日志文件 dbms_logmnr.removefile 用于移出用于分析的日志文件

   6.4.4  添加用于分析的日志文件

   SQL>

   BEGIN

   2       dbms_logmnr.add_logfile(

   3       options => dbms_logmnr.addfile,

   4       logfilename => '/u01/arch/arc_ctc_0504.arc'

   5      );

   6   END;

   7 /

   可以用以下方法查询分析的日志文件包含的 scn 范围和日期范围:

   SQL> select low_time,high_time,low_scn,next_scn from v$logmnr_logs;

   6.4.5  启动LogMiner 进行分析

   SQL> BEGIN

   2      dbms_logmnr.start_logmnr(

   3      dictfilename => '/u01/arch/logminer_dict.dat',

   4      starttime => to_date('20030501 12:15:00','yyyymmdd hh24:mi:ss'),

   5      endtime=> to_date('20030501 15:40:30','yyyymmdd hh24:mi:ss')

   6      );

   7   END;

   8 /

   即分析2003年5月 1日这天 12:15至 15:40这段时间,并把分析结果放到数据字典中以用于查询。

   还有两个参数 startscn (起始 SCN号)  及 endscn (终止 SCN)  号。

   6.4.6  查看日志分析的结果

   查看DML操作:

   SELECT operation, sql_redo, sql_undo

   FROMV$logmnr_contents WHERE seg_name = 'QIUYB';

   OPERATION       SQL_REDO                       SQL_UNDO

----------      --------------------------   --------------------------

   INSERT         inser into qiuyb.qiuyb ……   delete from qiuyb.qiuyb……

   其中 operation指的是操作,sql_redo 指的是实际的操作,sql_undo 指的是用于取消的相反的操作。

   查看DDL操作:

   SELECT timstamp, sql_redo   FROM v$logmnr_contents

   WHERE upper(sql_redo) like '%TRUNCATE%';

   6.4.7结束LogMiner的分析

   SQL>BEGIN

   2      dbms_logmnr.end_logmnr();

   3    end;

   4 /

上一页  1 2 

Tags:Oracle 数据库 备份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接