select * from v$log
看看有几组log
有时候,切换logfile时,下一组logfile还没有准备好,就产生等待,
多建几组logfile,会好些。

解决方案 »

  1.   

    检查v$log_history,看有什么动作;另,检查log_checkpoint_interval,log_checkpoint_timeout的设置,可能是因为logfile的大小,多少引起的
      

  2.   

    如果数据库处于归档模式下,当执行
    alter system switch logfile操作后,Oracle接
    下来需要进行日志切换。在进行日志切换之前,
    Oracle首先检查将要切换到的下一个日志文件
    是否已归档,而你的数据库是处于归档模式但
    不是自动归档,所以Oracle需要等待进行手工
    归档,再进行切换。而在你还没进行手工归档
    需要归档的日志之前,数据库实际上已经挂起
    并等待手工归档,所以出现了以上的问题。解决办法:
    1、将末归档的日志手工归档:
       SQL>shutdown immediate
       SQL>startup mount
       SQL>alter system archive log all;
       打开数据库:
       SQL>alter database open;
    2、将数据库置于自动归档状态:
       SQL>alter system set log_archive_start=true scope=spfile;
       SQL>shutdown immediate
       SQL>startup