服务器 频道

一个oracle调优的好玩经历

  【IT168 服务器学院】五一前出差去客户那里。客户的DBA和我说他们的门户网站的数据库服务器每天到晚上的时候都死翘翘。不知是什么原因。我问他,你一般是如何解决。现在没办法,也找人看过(后来事实证明原来的人是个“棒槌”),没找到什么地方的原因。问题很严重,他很生气。所以只能每天重启。然后又开始给我说了一堆他数据库的情况(后来发现被误导了)

  系统环境:win2k+oracle 92

  工作开始:1、查看alert_SID.log 日志。没发现问题。2、为数据库做statspace,峰值大约在早10点和下午3点左右。做了两个statspace。看,有些参数设置的有些问题。SGA过小。但是不会导致oracle数据库down机啊!即使oracle性能有问题,也应该是系统繁忙的时候宕机,不应该是晚上。所以又问,有没有做过什么操作。说没有。突然想到主机是windows系统。oracle事件会写到windows的事件管理器中。打开事件管理器。发现archive有问题。 

  sqlplus /nolog

  SQL> conn /as sysdba

  SQL> archive log list

  Database log mode Archive Mode
  Automatic archival Disabled
  Archive destination e:archive
  Oldest online log sequence 92
  Next log sequence to archive 94
  Current log sequence 92

  哈哈,问题出现了。数据库为归档模式,但是自动归档没有打开。

  show parameter log_archive_max_processes

  log_archive_max_processes            integer     2

  SQL> select * from v$logfile;

      GROUP# STATUS  TYPE
  ---------- ------- -------
  MEMBER
  -------------------------------------

           3         ONLINE
  D:ORACLEORADATAORA92IREDO03.LOG

           2         ONLINE
  D:ORACLEORADATAORA92IREDO02.LOG

           1         ONLINE
  D:ORACLEORADATAORA92IREDO01.LOG

  问题显而易见了。使用了归档模式,但没有做自动归档,所以一旦两个redo log 写满以后,日志文件没有自动归档日志文件去,就等待中了。
  SQL>  alter system archvie log start
  SQL>  alter system set log_archive_start=true scope=spfile;
  问题解决了。

  后来又问DBA,他想起来自己修改过归档模式。但是自动归档这个事他不清楚。所以就出现了这样的问题。

  其实是个很简单的问题。只是开始被误导,以为事数据库性能问题。耽误了很多时间。

   

0
相关文章