Chinaunix

标题: 心得——hp MC 检测sybase进程脚本 [打印本页]

作者: microint    时间: 2006-08-15 23:17
标题: 心得——hp MC 检测sybase进程脚本
今天忙活了一下午到现在,终于有点收获。
系统用hp-unix 11.11,数据库用sybase12.5,有MC,磁阵。
hp只是做了系统层面的MC,也就是说对于MC切换,只能做到shutdown操作系统,数据库发生切换;但是对于数据库自己down下来,不能自动切换。于是找hp,hp说这样的监控脚本需要sybase提供;于是找sybase,sybase说要hp提供。sigh,扯不清楚。
于是自己搞,搞到现在,可以切换了,但是仍然有些问题,请大侠赐教。
monitor脚本如下:
#!/usr/bin/sh
SYBASE_SERVER=dataserver
LOGFILE=/export/home/sybase/ASE-12_5/install/TIPS.cs_log
while true
do
ps -ef | grep ${SYBASE_SERVER} | grep -v grep >> /dev/null
if [ $? -eq 0 ]
then
echo $? >> /dev/null
else
echo "Die" >> ${LOGFILE}
sleep 60
cmrunpkg -n tips2 pkg1
echo "Die hard" >> ${LOGFILE}
sleep 60
exit
fi

sleep 10
done

每次在主机tips1上主动shutdown数据库时,可以从主机tips1把pkg1切换到主机tips2
但是切换成功后,发现主机tips1的cmviewcl -v时,主机tips1的信息如下:
Node_Switching_Parameters:
      NODE_TYPE    STATUS       SWITCHING    NAME                     
      Primary      up            disabled     tips1                     
      Alternate    up           enabled      tips2   
这个说明主机tips1对于包切换已经拒绝了,然后再想从tips2切换回tips1就不行了
暂时的解决办法是在tips1上cmhaltnode -v -f,然后cmrunnode -v使之成为enabled,然后就可以从主机tips2切换回来。
是不是说明monitor脚本有问题,还是其他的原因。
多谢啦
作者: xiaophedap    时间: 2006-08-16 08:27
解决办法:
暂时的解决办法是在tips1上cmhaltnode -v -f,然后cmrunnode -v使之成为enabled,然后就可以从主机tips2切换回来。
替换成:
cmmodpkg -e PKG_NAME(在这里就是tips1)
这样,pkg的switching属性就会变成enable——即出现问题自动切换。
作者: befeel    时间: 2006-08-16 13:10
HP有提供sybase的start、stop、monitor三合一脚本,他不给你罢了,呵呵
作者: jianan    时间: 2006-08-16 13:26
CMMODEPKG -E PKG
作者: fly_sky418    时间: 2006-08-16 14:22
#cmmodpkg –e –n node pkg
进行激活

[ 本帖最后由 fly_sky418 于 2006-8-16 14:23 编辑 ]
作者: befeel    时间: 2006-08-17 14:53
  1. #!/usr/bin/sh
  2. SYBASE_SERVER=dataserver
  3. while true
  4. do
  5. ps -ef | grep $SYBASE_SERVER | grep -v grep >> /dev/null
  6. if [ $? -eq 0 ]
  7. then
  8. echo Alive >> /dev/null
  9. else
  10. echo Die >> /dev/null
  11. exit
  12. fi
  13. sleep 2
  14. done
复制代码




在monitor脚本中不应出现控制程序包切换的语句,检测到进程不存在后程序包切换的工作由MC自己完成...

手工切换过程序包后必须使用# cmmodpkg -e pkg_name激活程序包的switch属性
作者: cjhvslhb    时间: 2006-08-18 14:54
这个脚本确实是有问题的,把HP的脚本给你吧:

#!/usr/bin/sh
SYBASE_SERVER=dataserver
while true
do
ps -ef | grep $SYBASE_SERVER | grep -v grep >> /dev/null
if [ $? -eq 0 ]
then
echo Alive >> /dev/null
else
echo Die >> /dev/null
exit
fi
sleep 20
done
作者: microint    时间: 2006-08-20 08:30
原帖由 cjhvslhb 于 2006-8-18 14:54 发表
这个脚本确实是有问题的,把HP的脚本给你吧:

#!/usr/bin/sh
SYBASE_SERVER=dataserver
while true
do
ps -ef | grep $SYBASE_SERVER | grep -v grep >> /dev/null
if [ $? -eq 0 ]
then
ech ...


我就是参照HP的脚本搞,结果发现根本就不会切换
所以加了手工切换的部分在脚本里头
郁闷的说:)
HP的那个小伙子居然对shell不熟悉,我真的服了!
由于不知道包切换的时间大约是多久,所以设置成sleep 60
后来改成sleep 30,切换也成功
按照HP的说法,包切换一般10到15秒

另外,有人说的sybase自带的HA的脚本,带monitor,start,halt参数的那种
是sybase自己的HA,就是说要要有两个数据库实例的
我这个只有一个数据库实例
作者: befeel    时间: 2006-08-21 09:41
那你检查检查吧,我用这脚本会切换的......

"有人说"的那个monitor、start、halt脚本有for MC的,是HP提供的非Sybase提供,跟这简化的Monitor一样都能实现切换的功能......




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2