查看: 7116|回复: 6

[精华] 实例:解决rollforward hang的问题

[复制链接]
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
跳转到指定楼层
1#
发表于 2006-5-9 05:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当客户restore完毕然后作rollforward to end of logs and complete时一个很小的数据库3个小时也没有完成。
于是我们做
db2 list utilities show detail发现rollforward卡在了backward phase:
db2fsprd scurs10>db2 list utilities show detail                     
                                                                    
ID                               = 74887                           
Type                             = ROLLFORWARD RECOVERY            
Database Name                    = FSDEV89                          
Partition Number                 = 0                                
Description                      = Database Rollforward Recovery   
Start Time                       = 05/05/2006 07:14:00.497923      
Progress Monitoring:                                                
   Estimated Percentage Complete = 100                              
   Phase Number                  = 1                                
      Description                = Forward                          
      Total Work                 = 3611153565 bytes                 
      Completed Work             = 3611153565 bytes                 
      Start Time                 = 05/05/2006 07:14:00.497927      
   Phase Number [Current]        = 2                                
      Description                = Backward                        
      Total Work                 = 47 bytes                        
Completed Work             = 0 bytes[/COLOR]                       
      Start Time                 = 05/05/2006 07:24:18.934889      
                                                                    

因此,为了看清楚到底发生了什么事情,我们应该对这个进程作kill -36。
但是db2 list applications for <database>显示没有连接,这里我们可以得出结论,程序确实是卡在某一个地方了。
然后检查db2diag.log看到进程827428开始了rollforward却一直没有停止,于是我们应该做kill -36 827428。
做了三次kill -36,得到三个trap file,以下是stack trace:
stack1:                                                                        
*** Start stack traceback ***                                                  
                                                                              
0xD033591C read + 0x1A8                                                        
0xD2A5E34C sqloread + 0x84                                                     
0xD19A49DC                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x534                                                                          
0xD19A7DA0 sqluhUpdate + 0x75C                                                
0xD19A0048 sqlpCleanHistFile__FP9SQLP_DBCBUl + 0x784                           
0xD19B188C sqlpForwardRecovery__FP20sqle_agent_privatecbUsPcPiPlT5PUlT2        
+ 0x60C                                                                        
0xD19ABF18                                                                     
sqlufrol__FP20sqle_agent_privatecbUsT2PcP11sqlurf_infoT2PiT4P17SQLB_POOL      
_ID_LISTPUlN34P5sqlca + 0x8BC                                                  
0xD233D1F4                                                                     
db2RollforwardRouteIn__FPcUlT2T1P26sqlu_tablespace_bkrst_listlP17SQLB_PO      
OL_ID_LISTN22P11sqlurf_infoPUcT1N22T1T2T1T2P17sqlurf_newlogpathT1PlT21_T      
1P13sqle_agent_cbP5sqlca + 0xBC0                                               
0xD233D8DC db2RollforwardDRDARouteIn__FP5sqldaT1P13sqle_agent_cbP5sqlca        
+ 0x41C                                                                        
0xD2E69248                                                                     
sqlerKnownProcedure__FlPcPlP5sqldaT4P13sqlerFmpTableP13sqle_agent_cbP5sq      
lca + 0xA20                                                                    
0xD2E6ED5C sqlerCallDL__FP7UCintfcP9UCstpInfo + 0x848                          
0xD28C6024 sqljs_ddm_excsqlstt__FP7UCintfcP14sqljsDDMObject + 0x470            
0xD28BA63C                                                                     
sqljsParseRdbAccessed__FP13sqljsDrdaAsCbP14sqljsDDMObjectP7UCintfc +           
0x58                                                                           
0xD28BA4DC sqljsParse__FP13sqljsDrdaAsCbP7UCintfc + 0x27C                     
0xD2AE0038 sqljsSqlam__FP7UCintfcP13sqle_agent_cbb + 0x138                     
0xD2AE05D4 sqljsDriveRequests__FP13sqle_agent_cbP11UCconHandle + 0x88         
0xD2AE0478 sqljsDrdaAsInnerDriver__FP17sqlcc_init_structb + 0xB0               
0xD2AE024C sqljsDrdaAsDriver__FP17sqlcc_init_struct + 0x84                     
0xD29F7284 sqleRunAgent__FPcUl + 0x2D4                                         
0xD2CD8BA0 sqloCreateEDU__FPFPcUl_vPcUlP13SQLO_EDU_INFOPl + 0x198              
0xD2CD87D4 sqloRunGDS__Fv + 0xA0                                               
0xD2CD91F8 sqloInitEDUServices + 0x144                                         
0xD2CC7F58 sqloRunInstance + 0x47C                                             
0x100028EC DB2main + 0x8A4                                                     
0x10003470 main + 0xC                                                         
                                                                              
stack2:                                                                        
*** Start stack traceback ***                                                  
                                                                              
0xD03331F0 lseek64 + 0x14                                                      
0xD2A5F29C sqloseek + 0x184                                                   
0xD19A45B8                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x110                                                                          
0xD19A7DA0 sqluhUpdate + 0x75C                                                
0xD19A0048 sqlpCleanHistFile__FP9SQLP_DBCBUl + 0x784                           
0xD19B188C sqlpForwardRecovery__FP20sqle_agent_privatecbUsPcPiPlT5PUlT2        
+ 0x60C                                                                        
0xD19ABF18                                                                     
sqlufrol__FP20sqle_agent_privatecbUsT2PcP11sqlurf_infoT2PiT4P17SQLB_POOL      
_ID_LISTPUlN34P5sqlca + 0x8BC                                                  
0xD233D1F4                                                                     
db2RollforwardRouteIn__FPcUlT2T1P26sqlu_tablespace_bkrst_listlP17SQLB_PO      
OL_ID_LISTN22P11sqlurf_infoPUcT1N22T1T2T1T2P17sqlurf_newlogpathT1PlT21_T      
1P13sqle_agent_cbP5sqlca + 0xBC0                                               
0xD233D8DC db2RollforwardDRDARouteIn__FP5sqldaT1P13sqle_agent_cbP5sqlca        
+ 0x41C                                                                        
0xD2E69248                                                                     
sqlerKnownProcedure__FlPcPlP5sqldaT4P13sqlerFmpTableP13sqle_agent_cbP5sq      
lca + 0xA20                                                                    
0xD2E6ED5C sqlerCallDL__FP7UCintfcP9UCstpInfo + 0x848                          
0xD28C6024 sqljs_ddm_excsqlstt__FP7UCintfcP14sqljsDDMObject + 0x470            
0xD28BA63C                                                                     
sqljsParseRdbAccessed__FP13sqljsDrdaAsCbP14sqljsDDMObjectP7UCintfc +           
0x58                                                                           
0xD28BA4DC sqljsParse__FP13sqljsDrdaAsCbP7UCintfc + 0x27C                     
0xD2AE0038 sqljsSqlam__FP7UCintfcP13sqle_agent_cbb + 0x138                     
0xD2AE05D4 sqljsDriveRequests__FP13sqle_agent_cbP11UCconHandle + 0x88         
0xD2AE0478 sqljsDrdaAsInnerDriver__FP17sqlcc_init_structb + 0xB0               
0xD2AE024C sqljsDrdaAsDriver__FP17sqlcc_init_struct + 0x84                     
0xD29F7284 sqleRunAgent__FPcUl + 0x2D4                                         
0xD2CD8BA0 sqloCreateEDU__FPFPcUl_vPcUlP13SQLO_EDU_INFOPl + 0x198              
0xD2CD87D4 sqloRunGDS__Fv + 0xA0                                               
0xD2CD91F8 sqloInitEDUServices + 0x144                                         
0xD2CC7F58 sqloRunInstance + 0x47C                                             
0x100028EC DB2main + 0x8A4                                                     
0x10003470 main + 0xC                                                         
                                                                              
*** End stack traceback ***                                                   
                                                                              
stack3:                                                                        
*** Start stack traceback ***                                                  
                                                                              
0xD03331F0 lseek64 + 0x14                                                      
0xD2A5F29C sqloseek + 0x184                                                   
0xD19A45B8                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x110                                                                          
0xD19A7DA0 sqluhUpdate + 0x75C                                                
0xD19A0048 sqlpCleanHistFile__FP9SQLP_DBCBUl + 0x784                           
0xD19B188C sqlpForwardRecovery__FP20sqle_agent_privatecbUsPcPiPlT5PUlT2        
+ 0x60C                                                                        
0xD19ABF18                                                                     
sqlufrol__FP20sqle_agent_privatecbUsT2PcP11sqlurf_infoT2PiT4P17SQLB_POOL      
_ID_LISTPUlN34P5sqlca + 0x8BC                                                  
0xD233D1F4                                                                     
db2RollforwardRouteIn__FPcUlT2T1P26sqlu_tablespace_bkrst_listlP17SQLB_PO      
OL_ID_LISTN22P11sqlurf_infoPUcT1N22T1T2T1T2P17sqlurf_newlogpathT1PlT21_T      
1P13sqle_agent_cbP5sqlca + 0xBC0                                               
0xD233D8DC db2RollforwardDRDARouteIn__FP5sqldaT1P13sqle_agent_cbP5sqlca        
+ 0x41C                                                                        
0xD2E69248                                                                     
sqlerKnownProcedure__FlPcPlP5sqldaT4P13sqlerFmpTableP13sqle_agent_cbP5sq      
lca + 0xA20                                                                    
0xD2E6ED5C sqlerCallDL__FP7UCintfcP9UCstpInfo + 0x848                          
0xD28C6024 sqljs_ddm_excsqlstt__FP7UCintfcP14sqljsDDMObject + 0x470            
0xD28BA63C                                                                     
sqljsParseRdbAccessed__FP13sqljsDrdaAsCbP14sqljsDDMObjectP7UCintfc +           
0x58                                                                           
0xD28BA4DC sqljsParse__FP13sqljsDrdaAsCbP7UCintfc + 0x27C                     
0xD2AE0038 sqljsSqlam__FP7UCintfcP13sqle_agent_cbb + 0x138                     
0xD2AE05D4 sqljsDriveRequests__FP13sqle_agent_cbP11UCconHandle + 0x88         
0xD2AE0478 sqljsDrdaAsInnerDriver__FP17sqlcc_init_structb + 0xB0               
0xD2AE024C sqljsDrdaAsDriver__FP17sqlcc_init_struct + 0x84                     
0xD29F7284 sqleRunAgent__FPcUl + 0x2D4                                         
0xD2CD8BA0 sqloCreateEDU__FPFPcUl_vPcUlP13SQLO_EDU_INFOPl + 0x198              
0xD2CD87D4 sqloRunGDS__Fv + 0xA0                                               
0xD2CD91F8 sqloInitEDUServices + 0x144                                         
0xD2CC7F58 sqloRunInstance + 0x47C                                             
0x100028EC DB2main + 0x8A4                                                     
0x10003470 main + 0xC                                                         
                                                                              
*** End stack traceback ***                                                   


从这里很显然我们可以看出所有的进程都卡在sqlpCleanHistFile,而且在一直循环:
第一个stack trace我们有
0xD19A49DC                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x534  
第二个却是:
0xD19A45B8                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x110     
从这里我们可以看出0x534>0x110,但是第一个却是在第二个之前运行,因此可以说明程序卡在了这个函数中,或者卡在了上一层.

知道了这点我们已经可以猜到结果了,就是由于history file corruption.
因此,告诉客户重新restore,然后删掉db2rhist.asc db2rhist.bak,然后重新rollforward一次成功....
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010广州亚运会纪念徽章:橄榄球
日期:2011-05-22 10:54:33管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:502011新春纪念徽章
日期:2011-01-25 15:41:012010年世界杯参赛球队:丹麦
日期:2010-04-06 10:23:36
2#
发表于 2006-5-9 07:32 | 只看该作者
最近碰到类似的案例,很受启发,特别是分析的步骤。

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-06-15 15:15:15会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44铁扇公主
日期:2007-10-26 16:08:48生肖徽章2007版:鼠
日期:2008-01-02 17:35:532008新春纪念徽章
日期:2008-02-13 12:43:03奥运会纪念徽章:田径
日期:2008-08-19 09:59:402010广州亚运会纪念徽章:高尔夫球
日期:2010-11-22 15:29:49优秀写手
日期:2014-02-28 06:00:13
3#
发表于 2006-5-9 08:38 | 只看该作者
wangzhonnew
zZzZzZzZz
您太强了,希望多给我们点帮助

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2006-02-05 11:03:26数据库板块每日发贴之星
日期:2006-02-10 01:02:41IBM软件技术精英协会成员
日期:2006-12-21 15:37:12
4#
发表于 2006-5-9 17:43 | 只看该作者
好文!!

使用道具 举报

回复
论坛徽章:
3
八级虎吧徽章
日期:2008-12-17 17:53:09CTO参与奖
日期:2009-02-20 09:44:20授权会员
日期:2009-03-06 12:50:31
5#
发表于 2008-11-27 09:13 | 只看该作者
wangzhonnew  好厉害呀~

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
186
授权会员
日期:2008-07-27 22:25:202014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14版主4段
日期:2015-02-26 02:21:03慢羊羊
日期:2015-03-04 14:51:35
6#
发表于 2008-11-27 10:13 | 只看该作者
从这里很显然我们可以看出所有的进程都卡在sqlpCleanHistFile,而且在一直循环:
第一个stack trace我们有
0xD19A49DC                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x534  
第二个却是:
0xD19A45B8                                                                     
sqluhReadEntry__F12SQLO_FHANDLEP11SQLUH_ENTRYP14SQLUH_WORKAREAPcN34PUl +      
0x110     
从这里我们可以看出0x534>0x110,但是第一个却是在第二个之前运行,因此可以说明程序卡在了这个函数中,或者卡在了上一层.

知道了这点我们已经可以猜到结果了,就是由于history file corruption.因此,告诉客户重新restore,然后删掉db2rhist.asc db2rhist.bak,然后重新rollforward一次成功....

实在是佩服的五体投地

使用道具 举报

回复
论坛徽章:
24
设计板块每日发贴之星
日期:2009-02-02 01:01:042012新春纪念徽章
日期:2012-01-04 11:53:54ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042010广州亚运会纪念徽章:壁球
日期:2010-11-22 15:43:03ITPUB元老
日期:2010-11-18 13:03:452010新春纪念徽章
日期:2010-03-01 11:04:582010年世界杯参赛球队:瑞士
日期:2010-01-05 13:47:142010新春纪念徽章
日期:2010-01-04 08:33:08生肖徽章2007版:兔
日期:2009-11-01 20:09:03ITPUB8周年纪念徽章
日期:2009-10-09 21:30:11
7#
发表于 2009-2-11 18:21 | 只看该作者
up

使用道具 举报

回复

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

本版积分规则 发表回复

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