oracle宕了,Oracle经常宕掉的解决办法

最近服务器的oracle经常宕掉,几乎每天宕一次,察看日志,发现出现“Thread 1 cannot allocate new log”错误,也导致了一个Tablespace的空间不足。

对于这个错误信息得解释如下:

当系统要重新利用某个日志文件的时候,系统需要将该日志文件所包括的buffer cache 中的dirty block 写到相应的数据文件。由于对于一个数据库操作而言,它可能产生的redo 量仅仅是几十字节,但是对于buffer cache中确是一个block (一般为8k)。所以,对于一个仅仅是几百M的日志文件,它所保护的buffer cache 可能是几个G

一旦发生"Thread 1 cannot allocate new log",表明系统的checkpoint 没有来得及完成,也就是说 buffer cache 中的dirty data还没有完全写到数据文件,就已经有大量的日志需要写入到系统。而系统只能通知应用:checkpoint 还没有完成,你只能等待。这个时候,系统就基本处于hang 状态了 When the database waits on checkpoints,redo generation is stopped until the

log switch is done

如果,我们在这个时候查看系统信息,就会发现:v$log中的日志状态大多处于active 状态; v$session_wait 中会有很多log file switch 事件的发生

解决办法: a. 添加更多的日志文件  b. 加大checkpoint 触发的频度  c. 减小redo log 的size d. 提高DBWR的效率 e. 为了更好的了解系统的运行,可以设置 log_checkpoint_interval = 0 log_checkpoint_timeout = 0 log_checkpoints_to_alert=True

我采用的办法是增加日志文件,改变归档日志的大小

该变归档日志大小只有改变日志组的大小!

方法:加入新的大的日志文件,然后删掉旧的小的日志文件

假设现有三个日志组,每个组内有一个成员,每个成员的大小为1MB,现在想把此三个日志组的成员大小都改为10MB

1、创建2个新的日志组

alter database add logfile group 4 ('D:/ORACLE/ORADATA/ORADB/REDO04_1.LOG') size 1024k;

alter database add logfile group 5 ('D:/ORACLE/ORADATA/ORADB/REDO05_1.LOG') size 1024k;

2、切换当前日志到新的日志组

alter system switch logfile;

alter system switch logfile;

3、删除旧的日志组

alter database drop logfile group 1;

alter database drop logfile group 2;

alter database drop logfile group 3;

当遇到删除不了日志文件,需要归档时,,只需执行

alter database clear unarchived logfile group 1;

然后再执行删除日志文件即可。4、操作系统下删除原日志组1、2、3中的文件 5、重建日志组1、2、3 alter database add logfile group 1 ('D:/ORACLE/ORADATA/ORADB/REDO01_1.LOG') size 10M; alter database add logfile group 2 ('D:/ORACLE/ORADATA/ORADB/REDO02_1.LOG') size 10M; alter database add logfile group 3 ('D:/ORACLE/ORADATA/ORADB/REDO03_1.LOG') size 10M; 6、切换日志组 alter system switch logfile; alter system switch logfile; alter system switch logfile; 7、删除中间过渡用的日志组4、5 alter database drop logfile group 4; alter database drop logfile group 5; 8、到操作系统下删除原日志组4、5中的文件 (可以不删,不删就是增加日志组)9、备份当前的最新的控制文件 SQL> connect internal SQL> alter database backup controlfile to trace resetlogs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值