Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425902
  • 博文数量: 116
  • 博客积分: 7087
  • 博客等级: 少将
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-19 23:32
文章分类

全部博文(116)

文章存档

2012年(1)

2011年(2)

2010年(10)

2009年(21)

2008年(18)

2007年(12)

2006年(21)

2005年(31)

我的朋友

分类:

2009-03-29 12:35:20

近期,单位里的Datastage服务器突然down机了。经过恢复操作系统之后,Datastage服务就工作不正常了。

具体症状是:
1.恢复操作系统后,发现/home/dsadm下的Datastage版本被恢复到老版本了;很多以前部署的任务,没法用了。
2.通过查找,发现Down机前Datastage软件还在,位于存储上的一块盘上。真是谢天谢地。
3.经过重新挂接,把那块盘接到了其他目录/mac下
4.直接运行/mac下的 Ascential/DataStage/DSEngine/bin/uv -admin -start,服务起不来。想拿/mac下的内容去覆盖/home/dsadm,报deveice busy.估计有什么库被加载到内存中了。
5.通过修改/mac下的dsenv文件,使得/mac下的Datastage Server能起来了。部分Datastage任务也能跑了。问题似乎排除了。
6.尝试使用Informix Native方式连接的job时,报错,说是Informix driver 初始化失败。
7.再调试dsenv,发现Datastage服务也起不来了。
8.问题变复杂了,Datastage服务起不来了,而且informix数据库也连不上了。
9.Datastage 服务起不来的症状是 :
    uv -admin -start 命令拍好,马上回到提示符,没有任何响应。正常情况应该是,列出很多locale被加载的信息。
10.请IBM澳洲远程支持,给出了2条命令:
    ipcs -m
    ipcrm 2504
   但是问题没有解决
11.请IBM本地工程师协查,决定从系统启动时调用的启动Datastage服务脚本入手,进行调试。
   uv是个二进制的文件,没法跟踪;但是实际启动的服务的,还有另外的脚本,存放在/sbin/init下
   名字为ds.rc
12.通过单步调试,终于发现,只要共享内存中存在了datastage服务的标志,就不会再起datastage服务。原来之所以前面没有起来,是因为共享内存步干净。也难怪IBM澳洲要我们传完整的清单给他们。
13.根据脚本里的代码,手工检查共享内存(ipcs -m),果然发现了残留的进程。通过ipcrm,删除进程。再起服务,一次性成功。
14.Datastage服务正常,但是informix数据库仍然连接失败,虽然通过Dbaccess可以正常连接。
15.IBM informix专家到场,再次检查informix CSDK版本,发现异常。当前使用的 CSDK是64 bit version,但是Datastage要求使用32 bit Version.再向之前配合恢复系统的 IBM Informix工程师求证,果然是他因为不了解情况,误装64 bit version CSDK for informix 10.
16.更换版本之后,全部恢复正常。
阅读(4392) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~