ITPub博客

首页 > 数据库 > 数据库开发技术 > informix数据库启动失败

informix数据库启动失败

原创 数据库开发技术 作者:sundayhe 时间:2011-05-19 13:44:10 0 删除 编辑

一、 故障现像

网络交换机重启,数据库切换失败,启动主机的数据库出现共享内存报错,报详细日志信息如下:

主数据库

Sun Dec 16 02:03:19 2007

02:03:19 Event alarms enabled. ALARMPROG = '/opt/informix/etc/log_full.sh'

02:03:26 DR: DRAUTO is 2 (Reverse)

02:03:26 Requested shared memory segment size rounded from 588KB to 592KB

02:03:26 shmget: [EEXIST][17]: key 52574802: shared memory already exists

02:03:26 (2) shm creation of shmem segment failed

Sun Dec 16 02:03:29 2007

02:03:29 Event alarms enabled. ALARMPROG = '/opt/informix/etc/log_full.sh'

02:03:35 DR: DRAUTO is 2 (Reverse)

02:03:35 Requested shared memory segment size rounded from 588KB to 592KB

02:03:35 shmget: [EEXIST][17]: key 52574802: shared memory already exists

02:03:35 (2) shm creation of shmem segment failed

重启主机系统后起主机数据库正常。

二、 系统及背景情况

2007-12-16凌晨2点,交换机发生了机器重启,scp01主机informix数据库切换失败,在双机拉数据库启动时报,共享内存已存在错误。

三、 原因分析

SCP01 主机数据库采用的是HDR方式,HDR数据库方式为数据库热备,主备数据库中间互有侦察消息,类似ping操作,在一个周期里如果不能侦察到对方将会产生错误,当错误达到一定的数量时一般情况将会造成两个数据库全为primary 或者备机一直处于FAST RECOVERY状态,特殊情况下可能造成数据库hang住或挂死。当重启数据库时,因有些进程并没有将其所占有的共享内存释放,所以在重启时将报共享内存已存在的错误,数据库起不来。

四、 解决方法

使用ipccs命令查到informix数据库使用的共享内存ID号后,再用ipcrm命令手工释放共享内存空间。操作如下例:

#ipcs

T ID KEY MODE OWNER GROUP

Message Queues:

m 7173 0x52564801 --rw-rw---- root informix

m 6 0x52564802 --rw-rw-rw- root Informix

# ipcrm –m 7173

# ipcrm –m 6

# ipcs |grep informix

使用ipcs查看无iformix数据库信息后,起动informix数据库,数据库恢复正常,数据同步正常。

五、 建议

INFORMIX数据库的HDR关系对网络的稳定性要求非常高,一定要保障设备所处网络的稳定性[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9479798/viewspace-1050071/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    30
  • 访问量
    58405