归档模式惹的祸

    技术2022-05-19  20

    今天天气不错....可昨天的问题又出现了. 被告知运行一procedure 超级慢。

    我简单看了下,排除SQL语句的问题。确定是DB问题。由于这台机器是恢复测试用的。很少用来给开发人员用。

    因此,不确定是不是数据库问题。

    进而查找原因。

     

     

     

    数据库Oracle 8.1.7.0.0   -- 不要惊讶,还有的值得学学的东西。

    Windows Server 2003 

    测试环境。

     

    症状:执行update 1000条 非常慢,几乎不成功。然后执行select 也非常慢。

    最终检查问题时对一些动态性能表的查询也非常慢。

     

    一时变的对问题无从下手。

     

    没辙,推理,遐想,猜一猜。

     

    每每进行update 时出的问题。而引起整个DB貌似都处于瘫痪的状态。

     

    与undo  和 redo 有关。根据经验,如果归档不能进行时,redo log 无法切换,DB会一直处于等待归档的状态。

    与改现象比较类似。

     

    1.查看redo log ,control file , datafile 状态。

     

    2.切换redo log时发现问题,alter system switch logfile ;一直处于停滞状态。

     

    3.查看归档模式   ---  归档模式,手动归档。

     

    SQL> archive log list; Database log mode Archive Mode //果然NND Automatic archival Disabled //真是完美组合.囧 Archive destination E:/oracle/oradata/mssf/archive Oldest online log sequence 12 Next log sequence to archive 12 Current log sequence 14 SQL> alter database noarchivelog; Database altered. SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination E:/oracle/oradata/mssf/archive Oldest online log sequence 12 Current log sequence 14 SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. OK!  

     

    解析:

    Database log mode              Archive Mode 

    Automatic archival             Disabled      

     

    意味着归档,并且需要手动归档。如果没有手动归档。则DB会一直不会切换到下一组redo log .

    一直等待归档完毕后再进行其他的update 操作。

    不然,oracle如何去记录这短时间内改动。所以.oracle 能做的只能是....等!

     

     

    等我去改完后,再去执行..2秒搞定。喝茶去~~

     

     

     

     

     

     

     


    最新回复(0)