电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Thread1cannotallocatenewlog引起的宕机事故.VIP免费

Thread1cannotallocatenewlog引起的宕机事故._第1页
1/7
Thread1cannotallocatenewlog引起的宕机事故._第2页
2/7
Thread1cannotallocatenewlog引起的宕机事故._第3页
3/7
Thread 1 cannot allocate new log 引起的宕机事故 发生 oracle宕机事故,alert文件中报告如下错误: Fri Jan 12 04:07:49 2007 Thread 1 cannot allocate new log, sequence 187398 Checkpoint not complete 产生此问题的原因分析: CKPT 这个后台进程的就是做 checkpoint 这件事,checkpoint 被触发的条件之一是就发生 redo log switch,Checkpoint 的具体工作包括: • 触发 DBWn 向磁盘写入 Dirty data。 • 把 checkpoint 信息更新到 datafile header 上。 • 把 checkpoint 信息更新到 control file 里。 Checkpoint 做的事情之一是触发 DBWn 把 buffer cache 中的 Dirty cache 磁盘。另外就是把最近的系统的 SCN 更新到 datafile header 和 control file(每一个事务都有一个 SCN),做第一件事的目的是为了减少由于系统突然宕机而需要的恢复时间,做第二件事实为了保证数据库的一致性。 而 redo log switch 就是触发 checkpoint 的主要的事件(event) ,当第一组 redo log 被用完之后,Oracle 就要停止使用当前的 redo log,转而使用另一组 redo log,这就叫做 log switch。而 log switch 触发 checkpoint。 Oracle 要求的最少的 redo group 的是 2 个,但我们一般都建议配置 3 个或 3 个以上 redo log group。假设我们只有两个 redo log group:group 1 和 group 2,并且系统中总是有大量的 dirty block 需要写入 datafile,当我们从group 1 switch to group 2 的时候,会触发 checkpoint, checkpoint 要求 DBWn 把buffer cache 中的 dirty block 写入 datafile,然而,当我们再次用完 group 2 里面的空间,需要再次switch to group 1 并重用 group 1 的时候,如果我们发现redo log group 1 所保护的那些dirty block 还没有完全写入到 datafile,整个数据库必须等待DBWn 把所有的 dirty block 写入到 datafile 之后才能做其他的事情,这就是我们遇到的“checkpoint not complete”问题。这个问题往往暗示了 redo log 的配置有问题,就本例而言,要么是 redo log 太小,要么是像我们这里的 redo log group 太少,只有 2 个。而这个问题的解决方案就是加大redo log 或添加更多 redo log group,不管哪一种解决方案,我们的目的都是给 DBWn 争取更多...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Thread1cannotallocatenewlog引起的宕机事故.

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部