ITPUB??ì3
2010数据库技术大会
ITPUB论坛 » Oracle数据库管理 » 有压力,要坚持 --- ASM还魂记


您有 2 条公共消息
  • 来自: 公共消息 标题: 3-5月ITPUB数据库 ... 内容: ITPUB与3月和5月分别安排了Oracle 11g DBA和Oracle性能优化培训,以及 ...
  • 来自: 公共消息 标题: ITPUB邮箱已经恢复 内容: ITPUB邮箱用户请注意,邮箱现在已经恢复 web访问地址 http://emai ...

    标题: [精华] 有压力,要坚持 --- ASM还魂记
    本帖已经被作者加入个人空间
    离线 NinGoo
    何乡是吾乡,归期未有期


    来自 杭州
    精华贴数 5
    个人空间 235
    技术积分 13248 (108)
    社区积分 4341 (435)
    注册日期 2004-12-7
    论坛徽章:98
    管理团队成员ITPUB元老八级虎吧徽章生肖徽章2007版:蛇祖国60周年纪念徽章生肖徽章2007版:龙
    生肖徽章2007版:狗2008北京奥运纪念徽章:篮球2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:水球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:网球

    发表于 2008-2-24 00:31 
    有压力,要坚持 --- ASM还魂记

    作者:NinGoo | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
    地址:http://www.ningoo.net/html/2008/dba_under_pressure.html

    DBA未必是一个高薪的职业,但绝对是一个高压力的职业。

    昨天晚上,数据仓库一个4节点的RAC+ASM系统,在进行新加节点操作的时候,发现新节点的ASM实例无法mount diskgroup,报ORA-15042错误。后来尝试将整个库重启,结果所有节点的ASM实例都出现同样的问题了。这个教训告诉我们,在遇到问题没有搞清楚具体原因之前,千万不要轻易重启数据库。

    但是问题既然已经发生,自然要想办法修复。这是一个将近7T的生产系统,虽然目前只供内部使用,也不可能接受长时间的停机,所以重建diskgroup然后从备份恢复的方案只能是最坏情况下的打算。那么,当务之急,是要尽快查出问题所在,对症下药。

    工欲善其事,必先利其器。这次问题的解决,得益于oracle的kfed工具。从dump出来的结果看到,报错的两个disk的头信息确实已经损坏,另外一点比较奇怪的就是,正常disk header中记录的disk number和path信息,和从v$asm_disk查出来的已经不一致了。这个现象可能由于两个disk的头信息损坏,导致AMS Instance读取相关信息的整个机制出现了混乱。

    首先将两个损坏的disk通过dd做一个完整的备份。另外一方面,流云也通过metalink开了一级tar,并且直接电话找oracle的相关支持人员调动资源帮助解决问题,事实证明,虽然对于紧急故障处理的速度可能不是足够快,因为他们不了解系统相关情况,需要花很多时间来问一些相关的问题等等。但是oracle拥有足够的文档资源,这也为最终解决问题打下了基础。当然,文档只是提供了方向和思路,而且往往不同的两个文档之间还会有矛盾之处,这些都需要根据情况来做出修正。

    从oracle得到的一份文档记录了一个相似的案例,并且也是通过kfed工具修复了disk header而最终解决了问题,这给了我们足够的信心。拖雷和七公在家里也连上来和我们一起来分析如何修复损坏的disk header,根据dump出来的正常disk的头信息很快算出来两个异常disk的头信息,然后通过kfed将信息merge进去,满怀希望的重启ASM Instance,靠,问题依旧。

    仔细比对文档,发现刚才没有去改时间截。时间截的信息,除了在每个disk header中保存,还会在集中保存在disk directory中。那么首先要找到这个disk directory。而disk directory的地址又保存在一个起始磁盘的某个AU上。所以就要找到这个file1block1的disk,也就是kfdhdb.f1b1locn 的值不为0的disk,通过一个个disk header的查找可以确定。当然,这次我们比较幸运,坏的两个disk不是f1b1,否则可恢复的机会就要大打折扣,时间上也会拉长很多,因为可能需要扫描整个disk去查到保存在disk其他位置的file directory信息,能找到还好,找不到就彻底没戏,只能重建了。

    通过f1b1的AU2 block4中的指针(大多数情况下在这个位置,但并不保证),找到disk directory对应disk的时间截,当然,这个过程说起来一句话,实际上花了相当长的时间,其中还隐藏了很多细节,呵呵。处理这种问题,一个人真的很难搞定,因为基本都是internal的东西,之前从来都没有任何经验,只能靠一点点的蛛丝马迹去不同的猜测、验证,一个人的话就很容易走入死胡同,幸好我们是团队作战。

    历经艰难找时间截信息,马上merge进去重试。My God,还是不行。这个时候已经是到凌晨了,从早上9点上班算起,已经连续工作了15个小时以上了,而且似乎坏事总是喜欢扎,中间还处理了另外一个备库文件创建失败的故障,还有个主机的一块盘也坏了,当然是镜像过的,问题不大,保修一下就好。到洗手间洗个脸,清醒一下。另外最坏的方案也开始做准备了,要是一两个小时内问题还是无法解决,就只能全库恢复了。

    时间一点点过去,压力越来越大,脑子的运转也越来越慢。其实从dump出来的星期可以看到,disk header中的东西并不多,基本上就是四五处地方不一致需要修改的。那么为什么修改后还是不成功呢?再从头仔细的比对正常和修复过的disk header信息,发现check校验值是不一样的,而几个正常的disk都是同一个值。一般来说校验值应该是通过计算得到,所以check值没法通过 merge导入,那么只有手工强行更改了来试试是否可行了。事实证明,这是行不通的。但是,这次尝试也露出了一点点希望的曙光。之前merger后从v$ asm_disk.header_status看这两个盘的值一直都是INCOMPATIBLE,而这次终于有了变化,变成PROVISIONED。虽然 diskgroup依旧不能mount,心里还是觉得这条路是能走通的。

    晚上原计划要将一个库rebuild几个索引到新的磁盘上以分布IO压力的,先把这个命令下了再说。回头再来想,为什么check会不正确呢?说明 check的计算,不但跟dump出来的那些值相关,跟头部中的其他一些位应当也是相关的,而这些位通过dump是看不到的。于是用od直接看16进制的值,通过比较发现很多在正常的disk header中全0的地方,在损坏的两个盘中都是有值的,莫非问题就出在这里?狠一点,将前面4k的头部全部用dd清零,然后重新merge。谢天谢地,diskgroup正常mount上了,oh,yeah!这个时候虽然已经凌晨4点了,因为持续的紧张和熬夜,我们都是面容疲倦,但是问题最终得到解决,还是相当的激动,流云同学甚至一拳打在椅背上将手都打出血来了^_^

    做完一些善后工作,外面公交车在开始高叫“行人车辆请注意安全”了。再回头看这个晚上,其实中途好多次都想放弃了,一次次的失败真的让人非常的沮丧,而且周三的晚上才做了一次维护,疲劳状态下很多处理其实做得都不好,走了很都的弯路。也许很多事情都是这样,在你即将绝望放弃的时候,其实离最终的终点已经非常非常的接近,只要再坚持一下,但是这一下,又谈何容易呢。

    [ 本帖最后由 NinGoo 于 2008-2-24 15:22 编辑 ]


    __________________
    只看该作者    顶部
    离线 llmzealot
    初级会员


    精华贴数 0
    个人空间 0
    技术积分 565 (4110)
    社区积分 996 (1231)
    注册日期 2006-10-15
    论坛徽章:10
    指数菠菜纪念章祖国60周年纪念徽章生肖徽章2007版:马生肖徽章2007版:牛生肖徽章2007版:蛇生肖徽章2007版:猪
    生肖徽章2007版:牛生肖徽章2007版:蛇2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:排球  

    发表于 2008-2-24 00:44 
    学习了,这么晚不睡还是有收获哦,呵呵,沙发


    只看该作者    顶部
    离线 vongates
    开门


    精华贴数 3
    个人空间 0
    技术积分 19970 (61)
    社区积分 10076 (207)
    注册日期 2002-11-28
    论坛徽章:95
    管理团队成员2010新春纪念徽章2010新春纪念徽章生肖徽章:马生肖徽章:马生肖徽章:马
    生肖徽章:马生肖徽章:马生肖徽章:马生肖徽章:马生肖徽章:马生肖徽章:马

    发表于 2008-2-24 00:47 



    __________________
    只看该作者    顶部
    在线/呼叫 ZALBB


    精华贴数 8
    个人空间 0
    技术积分 40757 (23)
    社区积分 18469 (110)
    注册日期 2001-10-15
    论坛徽章:130
    现任管理团队成员     
          

    发表于 2008-2-24 00:54 
    不错,群策群力,战斗力确实强.


    __________________
    对内,共匪什么都要,就是不要脸;对外,共匪什么都不要,就是要脸。
    只看该作者    顶部
    离线 BlueBird03
    初级会员



    精华贴数 0
    个人空间 0
    技术积分 100 (19636)
    社区积分 13 (11656)
    注册日期 2007-3-23
    论坛徽章:0
          
          

    发表于 2008-2-24 00:54 
    回复 #1 NinGoo 的帖子

    “DBA未必是一个高薪的职业,但绝对是一个高压力的职业。”
    赞这句!很有挑战


    只看该作者    顶部
    离线 weilaiyxj
    怒放的生命


    来自 大连
    精华贴数 0
    个人空间 0
    技术积分 519 (4496)
    社区积分 3 (25292)
    注册日期 2004-10-15
    论坛徽章:0
          
          

    发表于 2008-2-24 01:05 
    “遇到问题没有搞清楚具体原因之前,千万不要轻易重启数据库。”


    __________________
    我的blog

    曾经多少次跌倒在路上曾经多少次折断过翅膀 如今我已不再感到彷徨我想超越这平凡的生活 我想要怒放的生命就象飞翔在辽阔的天空就象穿行在无边的旷野拥有挣脱一切的力量
    只看该作者    顶部
    离线 magic007
    老熊



    来自 四川成都
    精华贴数 1
    个人空间 450
    技术积分 1665 (1260)
    社区积分 39 (6771)
    注册日期 2004-2-8
    论坛徽章:12
    现任管理团队成员授权会员2010新春纪念徽章2010年世界杯参赛球队:阿尔及利亚ITPUB8周年纪念徽章2009日食纪念
    2009新春纪念徽章2008新春纪念徽章ITPUB新首页上线纪念徽章   

    发表于 2008-2-24 01:43 
    战斗力很强啊。感谢分享这么宝贵的经验。


    __________________
    我的网站:http://www.laoxiong.net
    老熊版DUL(ODU):http://www.laoxiong.net/odu
    email:magic007cn[at]gmail.com
    只看该作者    顶部
    离线 OoNiceDream


    精华贴数 0
    个人空间 0
    技术积分 2609 (736)
    社区积分 10492 (197)
    注册日期 2008-2-21
    论坛徽章:92
    蓝锆石紫水晶祖母绿红宝石萤石海蓝宝石
    紫蜘蛛九尾狐狸蓝色妖姬玉石琵琶红孩儿玉兔

    发表于 2008-2-24 08:11 
    常常都是奋战在夜里的职业
    遇到问题没有搞清楚具体原因之前,千万不要轻易重启数据库。得记住这句话


    __________________
    只看该作者    顶部
    在线/呼叫 netbanker
    版主



    精华贴数 5
    个人空间 0
    技术积分 15264 (89)
    社区积分 2801 (615)
    注册日期 2001-9-24
    论坛徽章:26
    现任管理团队成员ITPUB元老管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章2010新春纪念徽章
    2010新春纪念徽章祖国60周年纪念徽章ITPUB8周年纪念徽章生肖徽章2007版:兔生肖徽章2007版:蛇生肖徽章2007版:牛

    发表于 2008-2-24 08:22 
    辛苦


    __________________
    MSN: stevenzhaoyi at hotmail.com
    只看该作者    顶部
    在线/呼叫 赵宇
    版主 (10g OCM)


    来自 北京
    精华贴数 2
    个人空间 4104
    技术积分 8860 (189)
    社区积分 343 (2163)
    注册日期 2004-11-14
    论坛徽章:40
    现任管理团队成员ITPUB元老ITPUB北京2009年会纪念徽章ITPUB北京九华山庄2008年会纪念徽章管理团队2006纪念徽章2010新春纪念徽章
    2010年世界杯参赛球队:阿根廷     

    发表于 2008-2-24 09:18 
    辛苦


    __________________
    最大的追求莫过于让自己稳重、冷静、沉着、思考多学习、多做事最大的放弃莫过于浮躁


    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    E-mail:Webmaster@itpub.net
    网站律师 隐私政策 知识产权声明
    京ICP证:060528号 联系我们