跪机事件的过程回顾

昨天因为主备机切换,造成了跪机的大事故。。

操作过程是这样的,先发现日志不对,一直在报redis连接错误,而且出现了有些页面数据丢失。头儿就说叫我重启解决,那照理正式环境白天是不可以重启的,那就只能主备机切换了。谁知我主机一切,备机没起来不说,ssh都连不上了。。我想直接启服务都没办法启。。

猜测之下,我第一个怀疑是双机热备出现问题,所以先去/var/log/messages下看双机热备的日志了,但是没看出来有啥不对。。(后来才发现这个就是关键所在)

在双击热备的日志里看到了apache的目录,因为吃过一次启错apache的亏,所以我这次果断去找了这个apache是不是项目运行的apache。。才找到一半,就被叫过去了。。。

老大一直纠结连不上ssh,最后用测试服务器直接连。连上以后第一个问题是要重启服务,其实我已经重启过了,但是根本起不来,找老大解决帮忙,说是jdk编译版本的问题。web容器用的是tomcat8,项目代码用jdk1.6编译的,我觉得没啥问题啊。后来一看服务器上装的jdk版本是1.6和1.8两个,用的是1.6。改成1.8以后再重启tomcat,还是起不来,还是包jdk版本问题。

然后换成老版本的tomcat也解决不了。唉,想也不行啊!!如果真的是tomcat的问题,那我以前切换服务器早就会发现的啊!!

这时候发现连apache都启动不了。看了双击热备启动tomcat和apache的脚本,发现启动apache的脚本有问题,启动的apache路径不对。我重新写了apache的启动脚本

#!/bin/bash
# Startup script for Apache
#set -x

# Source function library.
. /etc/rc.d/init.d/functions


start_apache="/opt/apache2.2/bin/apachectl -k start"
stop_apache="/opt/apache2.2/bin/apachectl -k stop"


start() {
echo -n "Starting apache: "
${start_apache}
sleep 5
echo "apache start ok."
}

stop() {
echo -n "Shutting down apache: "
${stop_apache}
sleep 5
processName=httpd
killpidList=`ps -A --format='%p%P%C%x%a' -w --sort pid|grep "$processName"|grep -v grep|grep -v "$$" | awk '{ print $1}'`

  for   curpid   in   ${killpidList}   ;   do
          echo   "kill   -9   ${curpid}"
          kill   -9   ${curpid}
  done

echo "apache stop ok."
}

status() {

ps -ef|grep httpd |grep -vE 'sh|vi|grep'
 if [ $? -eq 0 ];then
   echo "Apache running!"
   exit 0
 else
   echo "Apache stopped!"
   exit 1
 fi
}

# See how we were called

case "$1" in
start)
start
;;

stop)
stop
;;

restart)
stop
sleep 10
start
;;

status)
status
;;

*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;

esac

exit 0


这会apache和tomcat是可以起来了。但是在双机热备的日志里是发现ip报错了,因为没办法自动设置浮动ip。

手动用ifconfig命令配了地址以后,总算是可以了用双机热备切换服务了。

ifconfig bond0:1 192.168.1.17 netmask 255.255.255.0 up

但是又发现一个系统时间的问题,主机时间比备机晚了20分钟。用下面的命令修改了系统时间

date -s 时间     这个命令只是设置了时间,但是没有真的修改
hwclock -w     这个命令才是真的生效

总算是解决了,服务恢复,耗时3小时。。。代价是今天早上的一篇检讨。。。


后续有时间再了解一下怎么用ha托管应用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值