暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

躺枪大王|又是数据库实例无法启动故障

银信科技 2021-05-12
437

作者简介

慕容荃,银信科技AIX/Oracle/TSM/Informix方面的资深技术专家。年少轻狂时致力于成为走过的每一个领域的专家;随着岁月老去,更看重在分享中寻获的快乐,从早年的aixchina.com到现在的银信微讲堂,一直在路上。工作之余,喜欢打牌,看电影,看科幻小说,也不排斥跑步打球出一身汗。

PS:右一为慕容荃本人;)→ → (认真脸)


案☆例

依然是开发环境

是的,受伤的又是TA

只是这次故事的主角换成Informix

创建Dbspace的chunk文件时,发现位置不对,情急之下步骤有些乱,从操作系统直接删除了Chunk文件,这下麻烦开始了——数据库实例无法启动到Online状态。

    

电话打进来的时候,正在车站候车,大致了解了操作过程。这时候dbspace已经处于Down状态,想要恢复可用比较困难,但由于不是系统的dbspace,恢复InformixServer的运行还是比较容易。

    

Informix配置参数ONDBSPACEDOWN用于控制在发生Dbspace离线情形下,Informix Server启动的应激行为特性,默认值为2,表示等待DBA的介入(设成0表示不理会非关键Dbspace的离线,照常启动)。让客户用onstat -c确认了该参数的当前值为2后,执行onmode -O,数据库进入到静默模式,然后执行onmode -my后,数据库实例恢复可用。

    

隔日,到客户现场!


好好的数据库服务器挂着一个离线的Dbspace,处女座表示无法接受,可是由于状态异常无法删除。尝试在另一套环境中创建一个等大的Dbspace,然后将Chunk文件复制故障环境的相同位置,虽然重启动Informix不会去检查离线Dbspace的状态并自动复原的,但一度寄希望的onspaces -s命令(修改Dbspace状态)也不能奏效,问题还是比较棘手。

    

考虑了一下,好吧,原厂有工具,我们有土方。Informix的rootdbs(系统Dbspace)前12页为保留页,其中PAGE_1DBSP/ PAGE_2DBSP(冗余页)存放有Dbspace的信息,这里有我们要篡改的Dbspace状态标志。将这12页用dd命令导出,拿到windows环境中用ultraedit修改,再dd回原有位置。


启动InformixServer,OK!Dbspace状态恢复在线。


虽说Dbspace状态正常,但保险起见,还是执行onspaces -d删除该Dbspace,按常规方法重建了。


往期回顾

数据库无法启动故障排除案例一则

11-03 特稿

HACMP软件Bug发现记

11-10 特稿


银信科技

IT运维整体解决方案提供商

文章转载自银信科技,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论