楼主: songyuee

[精华] 关于checkpoint

[复制链接]
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
11#
发表于 2003-1-21 13:56 | 只看该作者

sigh

我道歉

上午写的时候一个大意
因为很久很久没有探讨过这个问题了
写的时候没有仔细想,虽然犹豫了一下:

这个问题的原因是当你的成批大量的日志产生的时候
上一个check point还没有完成,但是日志已经轮循了一圈
由于要保证数据不丢失的缘故
在检查点没有完成的时候不能覆盖日志,否则这个时候crash就不能恢复

所以你需要做的是:
加大日志,增加日志组
同时也可调整checkpoint参数

你的系统太繁忙
导致checkpoint时候dbwr 获得cpu或者磁盘控制器的机会很少

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
12#
发表于 2003-1-21 14:11 | 只看该作者

Re: 关于checkpoint

最初由 songyuee 发布
[------------------alert.log--------------------------------
Fri Jan 17 05:01:23 2003
Beginning log switch checkpoint up to RBA [0x1640.2.10], SCN: 0x0000.8d37131b
Thread 1 advanced to log sequence 5696
  Current log# 2 seq# 5696 mem# 0: /dev/rredolog21
  Current log# 2 seq# 5696 mem# 1: /dev/rredolog22
Fri Jan 17 05:31:51 2003
Completed checkpoint up to RBA [0x1640.2.10], SCN: 0x0000.8d37131b
Fri Jan 17 08:30:49 2003
Beginning log switch checkpoint up to RBA [0x1641.2.10], SCN: 0x0000.8d442211
Thread 1 advanced to log sequence 5697
  Current log# 3 seq# 5697 mem# 0: /dev/rredolog31
  Current log# 3 seq# 5697 mem# 1: /dev/rredolog32
------------------alert.log-------------------------------- [/B]


这是正常的啊,并不能说明loggroup 太小或太少。
出现biti所说的“上一个check point还没有完成,但是日志已经轮循了一圈”,alertlog应该记录checkpoint not complete.
l记录RBA是因为设置了log_checkpoints_to_alert=true

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
13#
发表于 2003-1-21 14:32 | 只看该作者
楼上一语中的!
1.“上一个check point还没有完成,但是日志已经轮循了一圈”,alertlog应该记录checkpoint not complete.
2.记录RBA是因为设置了log_checkpoints_to_alert=true

使用道具 举报

回复
论坛徽章:
117
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主7段
日期:2012-05-15 15:24:11ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32紫蛋头
日期:2013-03-04 17:00:07优秀写手
日期:2013-12-18 09:29:09
14#
发表于 2003-1-21 15:55 | 只看该作者
除了checkpoint完成的时间有点长以外,都是正常的。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2003-1-21 16:34 | 只看该作者

sigh

看问题的的时候总是快速一扫而过

结果才发现回答的实际问题 根本就不是一个东西  

使用道具 举报

回复
论坛徽章:
16
ITPUB元老
日期:2005-04-27 08:46:182013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-01-04 11:49:54鲜花蛋
日期:2011-12-27 22:39:17ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010新春纪念徽章
日期:2010-03-01 11:20:51生肖徽章2007版:牛
日期:2009-07-13 12:53:13生肖徽章2007版:蛇
日期:2009-03-19 13:57:24生肖徽章2007版:牛
日期:2008-12-17 10:30:43奥运会纪念徽章:足球
日期:2008-10-24 13:28:14
16#
发表于 2003-2-25 09:22 | 只看该作者
我觉得确实有问题呀?
假设日志文件A在log switch到日志文件B时,触发了checkpoint。
那应该是意味着日志文件B要可用的话,必须等checkpoint结束才
可以。如果checkpoint花了30多分钟的话,那企不是oracle要等待
30多分钟才可以用日志文件B吗?如果在这30多分钟里,有用户
提交了(commit)了某句dml,那企不是要等30多分钟才得到
commit结束的消息了吗?
望各位高手指教。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
17#
发表于 2003-2-25 09:25 | 只看该作者

commit?

最初由 hanson 发布
[B]我觉得确实有问题呀?
假设日志文件A在log switch到日志文件B时,触发了checkpoint。
那应该是意味着日志文件B要可用的话,必须等checkpoint结束才
可以。如果checkpoint花了30多分钟的话,那企不是oracle要等待
30多分钟才可以用日志文件B吗?如果在这30多分钟里,有用户
提交了(commit)了某句dml,那企不是要等30多分钟才得到
commit结束的消息了吗?
望各位高手指教。 [/B]


你弄错了
commit跟 checkpoint 没有直接关系,只跟写日志有关系
log  switch 也跟 checkpoint没有直接关系

只是当 轮循  了一圈而早前的checkpoint还没有完成的时候数据库 hang

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
18#
发表于 2003-2-25 09:30 | 只看该作者
最初由 hanson 发布
[B]我觉得确实有问题呀?
假设日志文件A在log switch到日志文件B时,触发了checkpoint。
那应该是意味着日志文件B要可用的话,必须等checkpoint结束才
可以。如果checkpoint花了30多分钟的话,那企不是oracle要等待
30多分钟才可以用日志文件B吗?如果在这30多分钟里,有用户
提交了(commit)了某句dml,那企不是要等30多分钟才得到
commit结束的消息了吗?
望各位高手指教。 [/B]



到坛子里搜索一下checkpoint,你会明白许多!
Good luck!

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
19#
发表于 2003-2-25 09:34 | 只看该作者
log switch 过程(日志A 切换到日志B),不允许重做生成。这个过程很短。
一旦切换完毕,日志B标志为可用,重做继续生成,可以写到log buffer 或日志B中。

checkpoint 是另外一个事件了。

使用道具 举报

回复
论坛徽章:
2
ITPUB元老
日期:2005-03-02 12:45:52授权会员
日期:2005-10-30 17:05:33
20#
发表于 2003-2-25 10:03 | 只看该作者
最初由 hanson 发布
[B]我觉得确实有问题呀?
假设日志文件A在log switch到日志文件B时,触发了checkpoint。
那应该是意味着日志文件B要可用的话,必须等checkpoint结束才
可以。如果checkpoint花了30多分钟的话,那企不是oracle要等待
30多分钟才可以用日志文件B吗?如果在这30多分钟里,有用户
提交了(commit)了某句dml,那企不是要等30多分钟才得到
commit结束的消息了吗?
望各位高手指教。 [/B]


在这种情况下, 是30分钟后, LOG FILE A 才可用. 如果在30分钟之内, LOG switch 到A了, 数据库就会HUNG住, ALTER LOG 中就会看到CHECK POINT NOT COMLETE

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表