免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3364 | 回复: 3
打印 上一主题 下一主题

哪位大侠给解析一下,阈值存储过程为什么会跳过低阈值直接执行高阈值了? [复制链接]

论坛徽章:
1
巨蟹座
日期:2014-08-15 14:56:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-19 12:03 |只看该作者 |倒序浏览
我在一个数据库上定义了若干阈值存储过程,如下:

1> sp_helpthreshold     
2> go
segment name   free pages   last chance?   threshold procedure      
-------------- ------------ -------------- -------------------------
logsegment           768000              0 sp_thresholdaction_second                 日志空间使用空间大于40%时激活
logsegment           512000              0 sp_thresholdaction_second                 日志空间使用空间大于60%时激活
logsegment           256000              0 sp_thresholdaction                        日志空间使用空间大于80%时激活
logsegment            21624              1 sp_thresholdaction                        日志空间使用空间大于98%时激活

两个存储过程里面都将日志dump tran了,执行后日志段应该是被清空了的。
但是我发现sp_thresholdaction经常被调用,有时候比sp_thresholdaction_second还多
这样看来,日志是不是会瞬间增大,越过40%直接到80%甚至是98%呢?

请大侠给介绍一下,日志段是怎么增大的,多谢啦

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2010-11-19 13:15 |只看该作者
日志是不是会瞬间增大,越过40%直接到80%甚至是98%呢?



-----------------------------------------------------------------

我觉得是有可能的。 好像我也注意到类似的现象了。

假如有个大的事务,在阈值检测期间使得日志段剩余空间急剧下降低于非最终阈值的话, 有可能会跳过非最终阈值的。

论坛徽章:
1
巨蟹座
日期:2014-08-15 14:56:13
3 [报告]
发表于 2011-10-17 15:34 |只看该作者
自己分析了一下,应该是这样的:
由于事务的原子性,截断日志的操作会等待所有已经提交的事务执行完成后才能进行。这样会导致日志超过阈值点的情况出现。
其实阈值存储过程已经激活了,但日志不能截断而已。

更严重的情况是,若在激活阈值存储过程时,有事务A在运行,阈值存储过程会等待A完成后才生效。如果A尚未完成时,又来了一个要执行很长时间的事务B,那阈值存储过程要接着等待B,若B执行完成前又来了C...这样就会导致日志一直不能截断,最后激活最后机会阈值存储过程,此时会阻塞所有提交上来的新事务不执行,直到日志成功截断。但已经运行的任务是会等待执行完的。如果不想等待已经执行的事务执行完,可以用dump tran with no_log,这是危险的操作,不到日志满时不要执行。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2011-10-17 16:32 |只看该作者
能否在各个sp_thresholdaction 里面加个timestamp写audit data表跟踪一下呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP