标题: beginner-bj, 看个问题
seven
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15



UID 25386
精华 7
积分 241
帖子 416
活跃指数 28
LU金币 5712 个
LU金条 0 个
阅读权限 210
注册 2004-7-29
 
发表于 2007-3-27 20:00  资料  个人空间  短消息  加为好友 
beginner-bj, 看个问题

环境:
aix5.3-04-CSP,db2 v8.2 fp12,hacmp 5.3

db2配置了mirror active log path

问题描述:
用户一个大事务(一个delete里删100多W笔记录),结果导致N个ap   lock-wait,并且active log full,

pd操作:
1. force 下delete指令的这个ap,因为force application异步操作,而且active log full了,下了没效果。
2. 没辙了,在hacmp里扩active log、mirror active log两个文件系统

结果:
在扩active log文件系统的时候,db2 crash了。start instance,activate db后,db2开始crash recovery。

疑问:
1. 在active log full的时候,下force application咋就没效果了?
2. 在extend active log fs的时候,db crash?

顶部
beginner-bj
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


UID 9471
精华 15
积分 1369
帖子 2357
活跃指数 186
LU金币 4352 个
LU金条 0 个
阅读权限 210
注册 2004-1-16
 
发表于 2007-3-27 20:50  资料  个人空间  短消息  加为好友 
1、force application一定要等到回滚结束后才能执行。如果先执行了,数据库就会不一致的状态,这个是绝对不能发生的。简单的说,就是回滚比force application的优先级高。
2、db crash肯定不是由extend active log fs引起的,只是extend active log fs的时候db碰巧crash了。crash的原因应该是由前面的动作引起的,是不是做了kill pid之类的操作?db2daig.log里应该有些蛛丝马迹。

delete操作一次一定不要做太大的操作,100多W笔记录,最好用where过滤分几次删。
也有做delete操作不记log的方法,但不建议使用。
也有log满了不自动回滚,所有事物都暂挂的方法,估计也很少有人用。





我的博客:http://blog.chinaunix.net/index.php?blogId=739欢迎访问,并请多多批评指正。
顶部
seven
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15



UID 25386
精华 7
积分 241
帖子 416
活跃指数 28
LU金币 5712 个
LU金条 0 个
阅读权限 210
注册 2004-7-29
 
发表于 2007-3-27 21:08  资料  个人空间  短消息  加为好友 


QUOTE:
原帖由 beginner-bj 于 2007-3-27 20:50 发表
1、force application一定要等到回滚结束后才能执行。如果先执行了,数据库就会不一致的状态,这个是绝对不能发生的。简单的说,就是回滚比force application的优先级高。
2、db crash肯定不是由extend active log fs引起的,只是extend active log fs的时候db碰巧crash了。crash的原因应该是由前面的动作引起的,是不是做了kill pid之类的操作?db2daig.log里应该有些蛛丝马迹。

delete操作一次一定不要做太大的操作,100多W笔记录,最好用where过滤分几次删。
也有做delete操作不记log的方法,但不建议使用。
也有log满了不自动回滚,所有事物都暂挂的方法,估计也很少有人用。

1. 我是从db的层面来force application的,不是直接kill 用户的那个pid

2. 是不是这么理解:
force applicaion,db2执行的逻辑是:先rollback该事务,然后断开连接的session,在我所举的案例里,正好active log又满了,rollback pending,加上force applicaion是个异步的操作,导致了“表面看起来”force applicaion没效果?

3. db crash确确实实是我extend fs的时候发生的,当时本来想stop db的,但是为了避免影响到应用,想采用extend active log fs后,让交易继续跑下去,我的force也能生效,就在这会,db2 crash了(我干活,第一步就喜欢开个session tail -f db2diag.log)

因为一般我们online extend fs的时候,对应用是没影响的,我就纳闷了,db2怎么这么敏感的?

4. 我这边正好配置了log满,事务不回滚,交易pending

5. 客户因为自己下了个这么“愚蠢”的delete操作,写报告去了

顶部
beginner-bj
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


UID 9471
精华 15
积分 1369
帖子 2357
活跃指数 186
LU金币 4352 个
LU金条 0 个
阅读权限 210
注册 2004-1-16
 
发表于 2007-3-27 21:25  资料  个人空间  短消息  加为好友 
2的理解是正确的。就是因为force applicaion是异步的,rollback的优先级高。

db crash的原因不好猜测,如果db2diag、errpt、alog里什么都没有那就没法判断了。





我的博客:http://blog.chinaunix.net/index.php?blogId=739欢迎访问,并请多多批评指正。
顶部
seven
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15



UID 25386
精华 7
积分 241
帖子 416
活跃指数 28
LU金币 5712 个
LU金条 0 个
阅读权限 210
注册 2004-7-29
 
发表于 2007-3-27 22:03  资料  个人空间  短消息  加为好友 
问开去,先抛开crash不谈,

beginner-bj,如果你遇到这样的case,怎样在对应用影响最小的前提下,处理这个问题呢?
一边,因为delete操作,导致某几支应用lock-wait,想force他,又因为active log full,进退两难。

我现在最最怕做online的操作了,最近运气太背,干啥,啥不顺。

要烧香去咯~

顶部
beginner-bj
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


UID 9471
精华 15
积分 1369
帖子 2357
活跃指数 186
LU金币 4352 个
LU金条 0 个
阅读权限 210
注册 2004-1-16
 
发表于 2007-3-27 22:51  资料  个人空间  短消息  加为好友 
正常情况下,设置BLK_LOG_DSK_FUL=YES后,遇到LOG FULL的情况,去EXPAND FS就好了,但你在EXPAND FS前多做了一步FORCE APPLICATION。

一开始LOG FULL的时候,本来要做ROLLBACK,但由于BLK_LOG_DSK_FUL的设置,ROLLBACK被PENDING了;FORCE APPLICATION是异步的,优先级低于ROLLBACK,所以看到的情况是所有的APPLICATION都处于HANG的状态;后来你做了EXPEND FS,HANG的状态被打破,DELETE对应APPLICATION接到的指令是继续EXCECUTE,不做ROLL BACK了;不过APPLICATION一旦处于EXCECUTE状态的时候,FORCE的优先级就高了,FORCE又给这个APPLICATION发指令,马上STOP,并立刻ROLL BACK。这样看来这个APPLICATION在同时收到两个相反的指令,所以DB就CRASH了。

上面的分析过程仅是我的猜测,最好自己再实验一下,或者问800。我想,如果我遇到这种CASE,就老老实实地EXPAND FS吧。





我的博客:http://blog.chinaunix.net/index.php?blogId=739欢迎访问,并请多多批评指正。
顶部
banker
LU天使
Rank: 4



UID 653
精华 0
积分 792
帖子 1539
活跃指数 3
LU金币 2443 个
LU金条 0 个
阅读权限 50
注册 2003-10-16
 
发表于 2007-3-28 20:08  资料  个人空间  主页 短消息  加为好友  添加 banker 为MSN好友 通过MSN和 banker 交谈
精彩





当我们讲话时,有人聆听。
当我们做事时,有人跟随。
当我们前进时,没有任何困难可以阻挡
顶部
seven
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15



UID 25386
精华 7
积分 241
帖子 416
活跃指数 28
LU金币 5712 个
LU金条 0 个
阅读权限 210
注册 2004-7-29
 
发表于 2007-3-28 21:02  资料  个人空间  短消息  加为好友 


QUOTE:
原帖由 beginner-bj 于 2007-3-27 22:51 发表
正常情况下,设置BLK_LOG_DSK_FUL=YES后,遇到LOG FULL的情况,去EXPAND FS就好了,但你在EXPAND FS前多做了一步FORCE APPLICATION。

一开始LOG FULL的时候,本来要做ROLLBACK,但由于BLK_LOG_DSK_FUL的设置 ...

beginner-bj ,进程优先级的概念我还没听过呢。(一下子想起写c的时候,算术符优先级了


那里能看到这方面的资料?

顶部
beginner-bj
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


UID 9471
精华 15
积分 1369
帖子 2357
活跃指数 186
LU金币 4352 个
LU金条 0 个
阅读权限 210
注册 2004-1-16
 
发表于 2007-3-28 21:26  资料  个人空间  短消息  加为好友 
哪里有这方面资料,我还真不知道。我说得完全是自己的猜测,猜测的根据就是把平时在各BBS上看贴时别人讲的只言片语与自己工作中看到的各种现象结合起来再稍加思索而已。

说实话,我自己都不知道说得对不对,基本上就是凭感觉。也期待有高人出来肯定或者指正一下。





我的博客:http://blog.chinaunix.net/index.php?blogId=739欢迎访问,并请多多批评指正。
顶部
onlyOneEditor (onlyOne小猪)
LU大天使
Rank: 6Rank: 6


UID 56560
精华 1
积分 1420
帖子 2434
活跃指数 50
LU金币 2451 个
LU金条 0 个
阅读权限 70
注册 2006-10-13
 
发表于 2007-3-28 22:19  资料  个人空间  短消息  加为好友 





走到一起是开始  保持一致是进步  协同工作是成功 www.zhangzimo.com
顶部
[广告] 论坛新开 【DB2产品家族】 【投资理财】 【行业应用】 板块
beginner-bj
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


UID 9471
精华 15
积分 1369
帖子 2357
活跃指数 186
LU金币 4352 个
LU金条 0 个
阅读权限 210
注册 2004-1-16
 
发表于 2007-3-29 10:41  资料  个人空间  短消息  加为好友 
seven,你看看这里

http://www.itpub.net/745701.html





我的博客:http://blog.chinaunix.net/index.php?blogId=739欢迎访问,并请多多批评指正。
顶部
[广告] 论坛新开 【DB2产品家族】 【投资理财】 【行业应用】 板块
dtbdtbdtb
技术专家
Rank: 14Rank: 14Rank: 14Rank: 14



UID 55853
精华 0
积分 48
帖子 93
活跃指数 5
LU金币 98 个
LU金条 0 个
阅读权限 200
注册 2006-10-1
 
发表于 2007-3-30 19:27  资料  个人空间  短消息  加为好友 
". 没辙了,在hacmp里扩active log、mirror active log两个文件系统

结果:
在扩active log文件系统的时候,db2 crash了。start instance,activate db后,db2开始crash recovery。"  

能这样做吗?
没有常识了
很多不正常的和不规范的操作会导致很多事情





tubie
qq:  408709908
msn:cyp1975@hotmail.com
www.vogoue.com
-------------------------------------
db2,websphere,mq,tsm,
-------------------------------------
反物质,反时尚
顶部
[广告] 论坛新开 【DB2产品家族】 【投资理财】 【行业应用】 板块
 



当前时区 GMT+8, 现在时间是 2008-7-7 11:19
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.060817 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver - WAP