注册 登录
qy88千亿国际专家网 返回首页

广西陈俊的个人空间 http://zjw.zlsoft.com/?13591 [收藏] [复制] [RSS]

日志

ORA-20999 处理笔记

热度 1已有 6530 次阅读2011-7-21 10:59 |个人分类:评审文章|系统分类:技术研究|
ORA-20999 处理笔记
时间:2011年7月11日
医院:dz市第一人民医院
处理人:陈俊
处理过程:
  据医院网管反应,某住院科室反应书写医嘱报错,而无法保存。由于不知道是那么出问题,所以网管把出错的界面做了截图,如下
 
 ……之后……
网管过来跟我说:“环丙沙星针,这个药品开不了,其他药品可正常开”
初略看了下这个截图,有‘数据块损坏’这些字眼,心想貌似问题挺严重的。但是又恰好在准备跟医院提起验收pacs的关键时期。不好搞啊。
正好前段时间医院开始规范搞医生抗生素处方权限
So……于是假装漫不经心的:“这个药品应该是抗生素类的,那个医生是不是……”
网管:“对哦,我打电话问问……”
网管:“主任啊,环丙沙星属于抗生素的吗?……属于啊……那XX医生有这个处方权限不?……这样啊,那我再看看咯”
我: “照这样的话,先用zlhis用户试试看咯”
打开医生工作站,随便找个病人,书写一条“环丙沙星针”医嘱。点保存,报错。
Oh……my god!
开跟踪软件,再保存,跟踪到的跟网管在科室里截图的错误是一样的,也就说明不存在用户权限问题了,这个是oracle数据库有问题了!!!
 
时近下班,便跟另外一个同事L说:“你先去吃饭吧,帮我打包”
同事L愣了一下,问:“要什么菜?”
其实也不奇怪,因为来这医院后,他跟我都是出去吃饭,从来没有说打包回来吃的
我顿了下,将视线离开PLSQL程序的窗口:“随便,只要不是肥肉就可以”
然后跟网管说:“看来要检查下是不是数据库出问题了,那可就麻烦了”
接着,到下班时间网管也回家了。
打开maxthon,然后在百度搜索里输入“ORA-20999: ORA-01578: ORACLE 数据块损坏 (文件号 17, 块号 315622)”。在搜索出来的页面中快速的寻找着类似的案例,大于一根烟的时间后,在网上找到了些相关帖子,有助于解决该问题。
(也许有人说用google比baidu好,这个我个人不否认。虽然百度在某些方面令人不齿,但百度的确是比google更懂中文)
按照网上的说法,ORA-20999: ORA-01578: ORACLE 数据块损坏 这种情况一般是对象损坏了,需要修复。如果是索引,则重建索引即可。如果是表,则比较麻烦,重建表过程中还需把原表中的坏块也删除方可重建。
不管怎么着,都的干。
先来检查看看是损坏的对象是啥吧,从跟踪软件里找到文件号和块号,如下图
 
然后在PLSQL里执行这段查询语句
SELECT tablespace_name, segment_type, owner, segment_name 
            FROM dba_extents 
           WHERE file_id =17
             and 315622 between block_id AND block_id + blocks - 1; 
这里数字17和315622 前一个代表文件号,后一个代表块号
 
查询出来的是“病人医嘱记录_IX_收费细目ID”这个对象,幸好不是病人医嘱记录这个表。知道了问题所在,剩下的就好处理了。
为安全起见,先做个备份
create table 病人医嘱记录_bak as select * from 病人医嘱记录;
然后再重建这个索引
drop index 病人医嘱记录_IX_收费细目ID;
create index 病人医嘱记录_IX_收费细目ID on 病人医嘱记录 (收费细目ID)
  tablespace ZL9INDEXCIS
  pctfree 5
  initrans 2
  maxtrans 255
  storage
  ( initial 64K
    minextents 1
    maxextents unlimited);
整个执行过程不到分钟
 
做完这些,在登陆到导航台,重新找个病人,输入”环丙沙星针” ,点击保存,成功!
不久,网管吃过饭后,过来看情况。
网管问起:“怎么样了?”
我:“已经处理好了,这个错误问题很少见”
网管:“是啊,之开医嘱还好好的。也没见医生说过,今天就说保存不了医嘱了”
我:“这个问题可能是由于医院频繁断电,加上科室那些电脑又经常中毒”
网管:“是啊,医院老是突然说停电就停电的,郁闷死了”
到此,基本结束了。
后话
整个过程中,解决问题的时间只用了不到一分钟,其他的都花在了寻找问题。寻找问题比解决问题更来的有趣。
仅以此文献给正在第一线实施的、为程序BUG闹心、为设计报表揪心、为泡MM伤心的兄弟姐妹们。对我们来说,ZLHIS就像个孩子一样让人操心,为ZLHIS欢喜为ZLHIS狂!

路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (1 个评论)

回复 彭兴华 2013-7-4 15:58
幸运坏的是索引,表的话想对麻烦一点。我都遇到过好几次表数据坏块的情况。
facelist
您需要登录后才可以评论 登录 | 注册
手机版|小黑屋|ZLSOFT Inc. ( 渝ICP备12005023号 GMT+8, 2019-9-16 14:19 , Processed in 0.175126 second(s), 24 queries .
Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.
返回顶部