一个病入膏肓的数据库优化

2/9/2008来源:Oracle教程人气:4668


  诊断:
  1。先看表空间
  system / temp表空间 剩余非常小,加大
  alter database datafile '...system.dbf' resize 100m;
  alter tablespace add datafile ... size ...;
  
  2。看alert日志
  发现最近一次重起数据库在早上5:00,有很多checkpoint not complete,另外redo log 共三组切换十分频繁, 一般几十秒最多两分钟。而且redolog非常小200k。
  alter database add logfile '...4.dbf' size 2m;
  alter database add logfile '...5.dbf' size 2m;
  alter database add logfile '...6.dbf' size 2m;
  alter system switch logifle;切换三次,drop原来的三个redo log
  alter database drop logfile '...1.dbf';
  alter database drop logfile '...2.dbf';
  alter database drop logfile '...3.dbf';
  
  3。回滚段
  发现有40个小回滚段,都是500k,删除大部分的回滚段从新建立更大的
  alter rollback segment r01 offline;
  drop rollback segment r01;
  create rollback segment r01 tablespace data01 storage
  (initial 4m next 4m optimal 8m);
  ......
  4。看sga区
  log buffer 太小了只有256k,该成4m