sorry.Long for here
使用LogMiner 分析重做日志文件
1. 重新建立PL/SQL 包DBMS_LOGMNR_D
打开d:\oracle\ora81\rdbms\admin\dbmslmd.sql
查找
"TYPE col_desc_array IS VARRAY(513) OF col_description;"
改为
"TYPE col_desc_array IS VARRAY(1023) OF col_description;"
在Server Manager 中执行以下命令
SVRMGRL>@d:\oracle\ora81\rdbms\admin\dbmslmd.sql
2. 设置初始化参数UTL_FILE_DIR,在参数文件中添加一行:
UTL_FILE_DIR=d:\oracle\oradata\manu
3. 执行以下命令,创建字典文件
SVRMGRL>EXECUTE DBMS_LOGMNR.BUILD(
'd:\oracle\oradata\manu','v817dict.dic');
4. 添加要分析的重做日志文件
SVRMGRL>EXECUTE DBMS_LOGMNR.ADDFILE(
'd:\oracle\oradata\manu\redo10.log',DBMS_LOG_MNR.NEW);
SVRMGRL>EXECUTE DBMS_LOGMNR.ADDFILE(
'd:\oracle\oradata\manu\redo20.log',DBMS_LOG_MNR.ADDFILE);
5. 开始分析
SVRMGRL>EXECUTE DBMS_LOGMNR.START_LOGMNR(
DICTFILENAME=>'d:\oracle\oradata\manu\v817dict.dic');
6. 查询V$LOGMNR_CONTENTS 视图
SVRMGRL>SELECT * FROM V$LOGMNR_CONTENTS;
7. 停止分析
SVRMGRL>EXECUTE DBMS_LOGMNR.END_LOGMNR;note: archive log file also can do

解决方案 »

  1.   

    the database name is manu
    oracle is installed into d:
      

  2.   

    设置初始化参数UTL_FILE_DIR,在参数文件中添加一行
    请问"参数文件",是哪一个?我执行SVRMGRL>EXECUTE DBMS_LOGMNR.BUILD('d:\oracle\oradata\manu','v817dict.dic');
    报错ORA-06550: 第 2 行, 第 14 列:
    PLS-00302: 必须说明 'BUILD' 组件
    ORA-06550: 第 2 行, 第 2 列:
    PL/SQL: Statement ignored该执行EXECUTE dbms_logmnr_d.BUILD('f:\oracle\oradata\oradb','v817dict.dic');
    报ORA-01308: 未设置初始化参数 utl_file_dir
    ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 793
    ORA-06512: 在line 2
    我想一定是utl_file_dir这个没有设,我不知道该设在哪,请明示
    我先给你分.
    谢谢!
      

  3.   

    : visc(visc)
    我在init.ora设置初始化参数 utl_file_dir前几步可以了.
    但执行到 
    EXECUTE DBMS_LOGMNR.BUILD('f:\oracle\oradata\oradb','v817dict.dic');
    ORA-06550: 第 2 行, 第 14 列:
    PLS-00302: 必须说明 'BUILD' 组件
    ORA-06550: 第 2 行, 第 2 列:
    PL/SQL: Statement ignored
    换成
    SVRMGR> EXECUTE dbms_logmnr_d.build('f:\oracle\oradata\oradb','v817dict.dic');
    ORA-01309: 无法打开指定的字典文件
    ORA-06510: PL/SQL: 无法处理的用户自定义异常事件
    ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 793
    ORA-06512: 在line 2请指教?
    我先给你分.
      

  4.   

    对,步骤没问题,偶尔会出现这样的问题。我遇到过,
    EXECUTE dbms_logmnr_d.build('f:\oracle\oradata\oradb','v817dict.dic');
    第一个参数是UTL_FILE_DIR的值,查查参数视图v$parameter看看是否正确,或者换个目录试试,比方说把UTL_FILE_DIR设为USER_DUMP_DEST所对应的路径试试看
    径                                    
      

  5.   

    sorry,前面有个笔误
    EXECUTE dbms_logmnr_d.build('v817dict.dic','f:\oracle\oradata\oradb');
    就对了,路径在后面,文件名在前
      

  6.   

    又遇到问题
    EXECUTE DBMS_LOGMNR.START_LOGMNR('f:\oracle\oradata\oradb\v817dict.dic');
    ORA-06502: PL/SQL: 数字或值错误 :  字符到数值的转换错误
    ORA-06512: 在line 2换成
    SVRMGR> EXECUTE DBMS_LOGMNR.START_LOGMNR(1,100,to_date('2001-01-01 08:30:00','YY
    YY-MM-DD HH:MI:SS'),to_date('2001-12-12 11:45:00','YYYY-MM-DD HH:MI:SS'),'f:\ora
    cle\oradata\oradb\log_analyse.ora');
    ORA-01293: 时间或 SCN 范围没有完全包含在列出的日志文件中
    ORA-06512: 在"SYS.DBMS_LOGMNR", line 42
    ORA-06512: 在line 2
    请在帮忙看一下.
    谢谢.
      

  7.   

    又遇到问题
    EXECUTE DBMS_LOGMNR.START_LOGMNR('f:\oracle\oradata\oradb\v817dict.dic');
    ORA-06502: PL/SQL: 数字或值错误 :  字符到数值的转换错误
    ORA-06512: 在line 2换成
    SVRMGR> EXECUTE DBMS_LOGMNR.START_LOGMNR(1,100,to_date('2001-01-01 08:30:00','YY
    YY-MM-DD HH:MI:SS'),to_date('2001-12-12 11:45:00','YYYY-MM-DD HH:MI:SS'), 
    'f:\oracle\oradata\oradb\v817dict.dic');
    ORA-01293: 时间或 SCN 范围没有完全包含在列出的日志文件中
    ORA-06512: 在"SYS.DBMS_LOGMNR", line 42
    ORA-06512: 在line 2
    请在帮忙看一下.
    谢谢.
      

  8.   

    对啊,这是因为这些你分析的日志文件不包含你所提供的那段时间内的redo 信息啊。你可以只指定一个参数就可以了,(或者查询v$log_history视图)
    这些都是可选参数,比方说,只指定字典文件的位置:SVRMGR> EXECUTE DBMS_LOGMNR.START_LOGMNR(dictfilename=> 
    'f:\oracle\oradata\oradb\v817dict.dic');
    试试就可以了
      

  9.   

    我试了
    EXECUTE DBMS_LOGMNR.START_LOGMNR('f:\oracle\oradata\oradb\v817dict.dic');
    ORA-06502: PL/SQL: 数字或值错误 :  字符到数值的转换错误
    ORA-06512: 在line 2
    可是不对啊!