最近几天,一直正常运行近一年的ORACLE服务器,经常出现这样的问题:
  数据库启动后,正常运行一段时间以后,数据库服务器端使用SQL PLUS建立连接正常,客户端使用SQL PLUS无法建立连接(没有任何回应),而从客户端ping和tnsping服务器均运行正常。初步认为监听器工作正常。后来只好关掉数据库后重新启动数据库,从客户端运行sqlplus才能正常连接。
后来自己查了一下alert日志,发现有这样的记录:
  ORACLE Instance XXXX-Can not allocate log,archival required
  
  ARCH:Connecting to console port
  Thread 1 cannot allocate new log,sequence 1644
  All online logs needed archiving
  ...
  我自己怀疑由于归档进程无法完成正常归档工作,导致数据库本身挂起,从而导致客户端无法连接数据库的现象发生。
  希望各位给分析分析,多谢了。!

解决方案 »

  1.   

    楼上老兄,能不能说得详细一点。
    我实际上问了两个问题:
    第一,客户端连接不上,是不是由于上述alert日志的归档日志报错信息导致的?
    第二,什么原因导致上述alert日志的归档日志报错信息。
    我比较关心第一个问题,因为客户端连接不上,意味着应用程序无法使用数据库,这是相当严重的问题。现在主要想定位问题出在哪?!!
      

  2.   

    下面的链接对你应该有帮助
    http://www.itpub.net/191384.html
      

  3.   

    redo logs 文件的大小太小了 或者你需要增加你的redo logs的个数。
      

  4.   

    我认为是你少设了一个自动归档参数,导致日志文件满时无法自动归档。试试
    log_archive_start = true
      

  5.   

    问题解决,感谢各位的热心指点.
    特别感谢zhaokeke2004和pengje!