你使用的数据库启动文件不是PFILE吧?把同目录下的SPFILE文件删除掉再启动试试看。

解决方案 »

  1.   

    to aweihz(我怎么还没有星??!) 
       我通过指定pfile启动
    SQL> startup open pfile='c:\ora9i\admin\testdb\pfile\init.ora'
    ORACLE 例程已经启动。Total System Global Area  135338868 bytes
    Fixed Size                   453492 bytes
    Variable Size             109051904 bytes
    Database Buffers           25165824 bytes
    Redo Buffers                 667648 bytes生成 字典文件 e:\oradata\dictionary\testdb_dict.ora
    接着执行倒入日志文件启动LogMiner
    SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => 'testdb_dict.ora',STARTTIME => TO_DATE('2004-06-25','YYYY-MM-DD'),ENDTIME => TO_DATE('2004-07-14','YYYY-MM-DD'));
    BEGIN DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => 'testdb_dict.ora',STARTTIME => TO_DATE('2004-06-25','YYYY-MM-DD'),ENDTIME => TO_DATE('2004-07-14','YYYY-MM-DD')); END;*ERROR 位于第 1 行:                                                                              ORA-01292: 当前 LogMiner 会话无指定的日志文件                                                                 
    ORA-06512: 在"SYS.DBMS_LOGMNR", line 53                                                                       
    ORA-06512: 在line 1请教一下 这是什么意思呢? 如何解决?
      

  2.   

    接着执行倒入日志文件
    -----------------------------
    你在这一步之后执行select * from v$logmnr_logs;看看什么输出。最好能把你整个过程完整的语句贴出来,这样一看就知道了,不用解释那么多。
      

  3.   

    完整步骤:
    -- 1、C:\ora9i\admin\testdb\pfile的init.ora 中加入一行
       utl_file_dir = E:\oradata\dictionary-- 2、提取数据字典
       execute DBMS_LOGMNR_D.BUILD(dictionary_filename => 'testdb_dict.ora',dictionary_location => 'E:\oradata\dictionary' );
                                   
    -- 3、以open的方式启动数据库实例
       startup pfile = 'C:\ora9i\admin\testdb\pfile的init.ora';-- 4、提供要分析的日志文件的列表。
       EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
               LOGFILENAME => c:\ora9i\oradata\testdb\REDO01.LOG',
               OPTIONS => DBMS_LOGMNR.NEW );-- 5、往现有的列表加入文件
       EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
               LOGFILENAME => c:\ora9i\oradata\testdb\REDO02.LOG',
               OPTIONS => DBMS_LOGMNR.ADDFILE );   EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
               LOGFILENAME => 'c:\ora9i\oradata\testdb\REDO03.LOG', 
               OPTIONS => DBMS_LOGMNR.ADDFILE );-- 此时查询v$logmnr_logs
       select log_id,filename,status from v$logmnr_logs ;
    logid       filename                                  status
    ---------------------------------------------------------------
    19        c:\ora9i\oradata\testdb\REDO01.LOG          32
    20        c:\ora9i\oradata\testdb\REDO02.LOG          32
    21        c:\ora9i\oradata\testdb\REDO03.LOG          32 -- 6、启动LogMiner,并分析数据
    --    启动LogMiner并限制在指定的时间范围内进行搜索:
       EXECUTE DBMS_LOGMNR.START_LOGMNR(
               DICTFILENAME => 'testdb_dict.ora',
               STARTTIME => TO_DATE('2004-06-28 08:30:30','YYYY-MM-DD HH:MI:SS'),
               ENDTIME   => TO_DATE('2004-07-15 08:45:00','YYYY-MM-DD HH:MI:SS');
               )
    此时报错:
    BEGIN DBMS_LOGMNR.START_LOGMNR(DICTFILENAME => 'testdb_dict.ora',STARTTIME => TO_DATE('2004-06-25','YYYY-MM-DD'),ENDTIME => TO_DATE('2004-07-14','YYYY-MM-DD')); END;*ERROR 位于第 1 行:                                                                              ORA-01292: 当前 LogMiner 会话无指定的日志文件                                                                 
    ORA-06512: 在"SYS.DBMS_LOGMNR", line 53                                                                       
    ORA-06512: 在line 1
      

  4.   

    sorry!
    这次提示的错误不同了。
    *ERROR 位于第 1 行:                                                                              ORA-01291: 丢失的日志文件                        
    ORA-06512: 在"SYS.DBMS_LOGMNR", line 53                                    
    ORA-06512: 在line 1为什么会这样? 搞不懂了。我只是把昨天的命令重新执行了一遍。错误竟然不同了?!
      

  5.   

    你拷贝以下的语句试执行一下:EXECUTE DBMS_LOGMNR.START_LOGMNR( -
               DICTFILENAME => 'testdb_dict.ora',-
               STARTTIME => TO_DATE('2004-06-28 08:30:30','YYYY-MM-DD HH:MI:SS'),-
               ENDTIME   => TO_DATE('2004-07-15 08:45:00','YYYY-MM-DD HH:MI:SS'));
      

  6.   

    为什么会这样? 搞不懂了。我只是把昨天的命令重新执行了一遍。错误竟然不同了?!
    -----------------------------------------
    你的LOG时间点不对了吧?把STARTTIME和ENDTIME的时间点改一下或者不加这两个时间范围
      

  7.   

    谢谢帮助! 
    我去掉时间限制并把文件名设置为全称就可以了!
    EXECUTE  DBMS_LOGMNR.START_LOGMNR( DICTFILENAME  =  >  'e:\oradata\dictionary\testdb_dict.ora');以后有问题还要多多请教了!