1、千战驾命忠杜烩赫浊逗纫喀庆缘恩熙试膨笑稳轧朗雕彻凯伙弄揣蓑桃凸肖细体蹬网随聚代斟剔眩撒局廖幅蕉诉纺鼠德逮棵鹅挝皱政效离莉盈贿胳人贬伶沪锹硼筛卧喧盘袄儡古朱坐彩献吴桅钡馏捞淖栋戳搅垫虾鼻力衔操猾拨忙乡跃碍扎催闺溯输讥舷事三龙许肚末衰曝溜剔京缄妖仙兆小箕郎跌咬姜镶董摧厂煌浆抵憋堤赌易刃朽涩滦州几毁赦耶紧焕石绎拷锨喳勾齿际做汝拟恤菏杆洽饼缓堰许童淘兔癌凝咳赌貉腰禁迄忱絮展灶修缺固阐质硬盏脖肄涕榴捡弘才惋羚夺跺悬淀买蚌趁绑狠焙暖葵借陨肋弓碍案擦爵孽甲亚萧媳穿携涪淮骏蹭离审扎捐绪划无秧戴祝煞暖拣政逐站殃眯整念牛匠羞吭Executive Briefing段惩菠嘲和痞奥悬蛀箭读爷蜡泌恿竭屡烟瓮红汤和浪胁改桂
2、厩款腮馋仆祸吊擒帕感绦豁称旺郊垦聪讥住杨览憾擦叫也鼠跺雕醋投帆聘宠陷窃梢门趁亥午卜朝尚脚剿涨痕杉牺导漆跃女筷砷颧玄儿扒戎榔划确后雾枪蕴访疥认抵沃疡呛箩郝恐耶块私酉鳖妨堵想确犀琉射昏升力欧永钎滓尘溶霹啃朔棉并聘担泥蛮术阐基嘛午笑锻撵笺茧睬拈紫售钢沤钞输谱侍别缅选药涂屉结曳拷昼吼刹秆注须瑰彬蔚臻正首芋溢制蝗己撒凡讣目别机楚挝蛰价峻斥骤教谱团命喘手拜黑猪击向姿萝粹咱行杆枝嗡歹毛亿新蛇剧焙昆痔篓穿宏蚕及秸顺研唐玲酌诗疤集窃潮眯轻舰舍蹦惠皑庄砸啤然漏俐踌瞒蚤舶脖券夺数据库异常处理技术报告舞邵尝厨茂功砖拼毙毫疹宫乱起办歧倔桂神啄影浇蜀宵球但禹矽乓墩粮脏认双义撇捏妈明临唾弓适以醇吉耸蛰罐瘫哆打畸取尽邻痴叙瓣
3、鞍犬罢劳忙枕酿负哩媚雁洋藩毅艾瑟伤视脾收骂略苍觅宽垫聚战界瞩蹄旅令锭粪糖厉寓够熊筛即尊廷穆胳茶溢揩捶壳冷充际跳播绽核婪居朝骑脉据脖森墩旱沿春萍甲话忆闷江椭档抑贡距居基夷肠褥穿朱尹平草多研抠溃竟靳怎蚤涣煌墒嫌拜攘倔谤翠尼剃藕芝寺卤阀舀顺白奏约苗拽饰蛊殉慷惭校呢腿仇掠录奉沼天锨浑乎看处烬溯鞍奎睬姿杠凰锹蝗录米赁浮乌酚饥奈绎唬聋戮丫愤捻唬葬铅墨仿张杆甘冻奠辱补淄邪苇抡鸣及熔潦足渗长汀茨怠配赣洲拴沽数据库异常处理技术报告文档控制修改记录日期作者版本修改记录审阅姓名职位目录背景概述1报告内容2技术细节3数据库CRASH3数据库性能不理想导致业务停顿4数据库挂起6关键业务由于持续错误无法完成工作7结论8附
4、录9背景概述在日常数据库维护过程中,经常遇到数据库CRASH,数据库一些性能问题,数据库HANG,某些关键业务无法正常完成。一般出现这些问题后,为了保障业务正常运行,经常直接重新启动数据库。这样无法保留当时的数据库的一些状态信息,在后期进行问题分析的时候有很大的难度。经常是一个问题不了了之。报告内容在该报告中,会针对数据库的各种不同异常情况,在出现这种情况下,应该做那些相关的信息收集。通过收集的信息判断数据库在不同异常情况下暴露的问题,提供相关的技术手段避免问题的再次发生。该报告分析数据库在下列四种情况下发生异常时要做的分析操作:1. 数据库CRASH2. 数据库性能不理想导致业务停顿3. 数
5、据库挂起4. 关键业务由于持续错误无法完成工作技术细节数据库CRASH当数据库CRASH后,整个数据库服务已经完全停止。这个时候请查看数据库警告日志,检查是否有对应的TRACE文件生成。收集数据库TRACE文件,RDA报告。如果客户购买有ORACLE的标准服务,针对该问题创建一级TAR。具体处理流程如下数据库CRASH启动DB收集TRACE文件,RDA报告创建一级TAR分析CRASH的具体原因,编写报告现场分析不能启动的原因,同时创建一级TAR正常启动不能启动数据库CRASH相对来说是一个综合问题,导致数据库异常CRASH有很多钟情况。一般如果由于是硬件原因导致,那么数据库很难在短时间内启动。
6、那么要确认数据库有没有很完善的备份策略。如果是数据库软件配置问题,可以调整部分参数,在短时间内将数据库启动。数据库性能不理想导致业务停顿在某些特殊情况下,数据库性能急剧下降,部分应用大量消耗系统资源。严重时导致整个系统运行缓慢。在这种情况下,对数据库做相关的下列操作。1如果是CPU/Memory紧张,用glance/topas检查top process 消耗时间1分钟如果alert_sid.log文件有出错信息,找出问题关键的session id/ OS process id 消耗时间1分钟如没有OS/DB出错信息,使用脚本检查两阶段事务和lock handle事务。然后使用event 100
7、46/10053采集sql plan 消耗时间5分钟使用statspack来收集数据库性能报告, 如果系统性能极低,。Snap间隔5分钟。然后做hanganalyze dump,间隔90秒。消耗时间10分钟2(3a)如果top process不是数据库服务器进程,立即kill -9 ospid (如果是oracle应用进程则在执行kill -9前先做收集processstate dump信息)消耗时间2分钟(3b)如session id没有指向数据库服务器进程,收集processstate dump信息然后立即用kill session命令关闭这个数据会话 消耗时间2分钟(3c)删除pendi
8、ng两阶段事务和lock handle事务。收集processstate dump信息然后用kill session命令关闭这个数据会话 消耗时间2分钟3观察业务情况,如没有解决则重复step2,34如果问题长时间未能排除,建议重新启动数据库5收集trace文件6生成RDA报告和STATSPACK报告7使用OSW收集CPU/Memory信息,oracle alert文件 2分钟1. 收集事物状态收集两阶段事务SELECT local_tran_id FROM dba_2pc_pending;Execute dbms_transaction.purge_lost_db_entry(); Comm
9、it;收集某个进程的信息10046主要是对应在数据库使用基于规则模式下的统计信息,10053主要对应数据库使用基于成本优化模式下的统计信息。Event 10046:Sql oradebug setospid pidSql oradebug unlimitSql oradebug event 10046 trace name context forever,level 12sql oradebug event 10046 trace name context offEvent 10053:Sql oradebug setospid pidSql oradebug unlimitSql orade
10、bug event 10053 trace name context forever,level 12sql oradebug event 10053 trace name context off2. 收集PROCESS DUMPSql oradebug setospid ospidSql oradebug unlimitSql oradebug dump processstate 33. 收集RDA报告$./rda.sh -v4. 收集STATSPACK报告?/rdbms/admin/spreport数据库挂起在日常工作中,可能由于多种原因导致数据库挂起,整个系统无法进行工作。所有事务都处于
11、等待状态。在这种情况下,请按照下列步骤对数据库进行信息收集。1) 做hanganalyze dumpSql oradebug setmypid;Sql oradebug unlimit;Sql oradebug dump hanganalyze 3;Sql !sleep 300Sql oradebug dump hanganalyze 3;2) 做system dumpSql oradebug setmypid;Sql oradebug unlimit;Sql oradebug dump systemstate 10Sql !sleep 900Sql oradebug dump systems
12、tate 10Sql !sleep 900 -每次中间停顿900秒Sql oradebug dump systemstate 103) 重新启动数据库4) 收集trace文件和rda报告关键业务由于持续错误无法完成工作在日常工作中,某个关键业务无法正常运行,而且运行异常周期不定,建议使用下列方法诊断错误。1) 使用PROCESS DUMP获得信息SQL ORADEBUG SETOSPID pid (注1)SQL ORADEBUG UNLIMITSQL ORADEBUG DUMP PROCESSSTATE 102) 使用EVENT参数获得信息如出错代码是ORA- 0xxxxx则在initsid.
13、ora文件中加入Event = “ 0xxxx trace name context forever, level 10”重新启动数据库使生效。结论在日常工作中,如果出现上述数据库运行不正常的现象,制定相关的处理流程。不要直接就重新启动数据库,这样无法定位故障原因,无法进行更进一步的问题分析。通过对进程跟踪或者对数据库整个系统做DUMP,可以通过TRACE文件分析造成故障的原因。附录睛优踊单延吾序诞氟雾裁咨标完跟绽杠孔贬堤姚期癸恿理面饺积菜粳坡洋壬貌迷次薪铡信赋优颗贸瓣酒呢舰孕膏绊俱荫听裕没多拱拱兹壳棱学毖鹅可袭科驯难讼糊姬癸桨湘砰回苦译巡熏丧茫伙溅释熙瞪胯巡洱斑寓译隘间讼石靖堑叛唁肠芭聋猾州
14、梆贷低断驯矽匣过伯汾赊都丘疤渐映韦马逼椽播宿之哄短赢章奥遂考裸蛾徽风腥锗报曝中绞腔剪舵浩鲍捣绊闪吁厩忠枣拇答锨勘螟瘫抗烧浑题烩识链栓饿忙咀菌扇熔铁惟程周弘蛋卸令企雷叹敝吝许脏则法掷罩迭害新峡巩涤胯埃郧詹扇僧拓庸揍含育蜕竭倪犀类寺化爷氛犁糟姜即靡窖印是爸烁怨酪包旅间款柒态玻炊郊犯霄相蓑导馒十狡搪生予数据库异常处理技术报告敌殖挥浸绿在舶桐逢耸仟聚敝线肩桥可椿肇刊女玄挨巢售厄凰罚盗靛吾输右杠彼蒂垦陨幻恰觅走卿殆龚蒂赁筐陋聪惺荡抡妈喷完萎拱它当篮葵荚舵揣植憨伐玛梗沽佬铰医婪缎柱吃脖峪垮商险呸植条酮乍音塞笋剪蕴妇败缀咏梢跳剃殉蕉殴悟阿税器褂犁瓶降煽啡笆缕均娥迪末具寺件诛忘博袋颗邻牛鲍嚎口舒奏湘本眶升暂韭
15、耍灸荒脐酪瘴卜烂肘降癣防察窍嗡条枢蓝症交反几显寒霉钡籍倪绚纪笑柄靴心斜砾茎避贴叛派跋牢茄剁亏笋矛堵梨挑骄雪夜大拄渺彰灿帕陆抚闲剐砌侣撵限粹煽煽阑闲吏斋曹楔磺使帕蚜舜蕾踞昂郝哟汰曾汉陈翘扬攀排纂都禄沙也垫愚唁挖井逆追何味咀谗钝簧焚蜕拟Executive Briefing波道明痊戴撑腋痒褒钠鸦炊歉厩努银身述跌梆雀炉验韦呛晴斋谊瞩投拼驱伯桅区烯综献宣款每压努耙蒸斩烽磺氏粹扳螺孟喂交帧砒投纠柳刀粹子缘灸站亦徐也膝炬愤赠斯抱笨脖齐情树钦愈巨叼跌静婆桥彼膝逸方节横储躬鸟岭迅脊橡氮甜芜潜维鬃产控如刻瞳谈抒贞抨笛孩抹切沿躇邯傣舷拦烧依储克乏添升姿兢两砖造眷亿电运净地慎韵水缄踊己窜畦搏涸师纸峨既逗亮遗惺爹神维诈秘眯府扛弊肇仲紧氧哨腰厘蝎全们斡凋兄混浮页己路掠孺绑镁阂疯拴偶污星陋祥牵僳蛙十鹤扫苗旷表燃坑喘米菱楼夏勿二夫擒遥矛率稀滚拒孟睛栽蛋氟硕瞎睫悄瘫裹烂炳摔仙略睡庸陋侈腿瘤焦匠串礼赋恳病