服务器断电后服务异常恢复思路
客户现场经常会遇到服务器断电重启后服务起不来,一般服务器异常断电导致服务起不来的情况有两种:
1)mysql和mongo异常关闭导致数据文件损坏,数据库无法启动
2)环境变量丢失导致java程序无法启动
1.先查看数据库是否都启动了
ps -ef |grep database
确认输出的内容包含mysql,mongodb,influxdb
一般mysql和mongodb比较容易损坏,先尝试手动修复一下
①mysql修复思路
先尝试手动启动mysql,查看启动时的日志
cd /home/seekcy/database/mysql/support-files
./mysql.server start
tail -200f /home/seekcy/database/mysql/mysqld.log
把从mysqld_safe Loging to以后的日志复制出来,粘贴到ai软件中
如图是这个报错返回的解决方法,可以用这个方法尝试恢复后再次启动mysql,能够正常启动
/home/seekcy/database/mysql/data
rm ib_logfile0 ib_logfile1
cd /home/seekcy/database/mysql/support-files
./mysql.server start
如果尝试修复后无法启动,可以参考运维文档中3.3.6.2 MySQL备份与还原,换一个新的mysql后恢复备份数据
②mongo修复思路
一般情况mongo损坏后修复比较困难,可以先按照上面mysql的思路,启动的时候把mongo日志复制给ai尝试修复,如果还是无法启动,就参考运维文档中3.3.7.2 MongoDB备份与还原,换一个新的mongo后恢复备份数据
2.如果数据库都正常启动了,但是程序无法启动
1)先尝试手动启动java程序,查看启动时候的日志,如果日志正常在跑,但是有报错,可以提工单给问题小组排查
①开放平台启动查看日志
cd /home/seekcy/js_open/location-server/
./service-server.sh
tail -f logs/info.log
②化工平台查看日志
cd /home/seekcy/chemical-locate/wwyt-server/
./service-server.sh
tail -f logs/info.log
2)如果日志没有在刷新,输入java看是否有输出,如果输出是-bash: java: command not found
就表明java环境变量异常,需要看下环境变量文件中的内容是否还在
vi /home/seekcy/.bash_profile
①文件内容如图所示表明环境变量内容正常,需要刷一下环境变量
source /home/seekcy/.bash_profile
②如果文件里面没有内容,需要把环境变量复制进去,再刷一下环境变量
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export JAVA_HOME=/home/seekcy/softs/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:/home/seekcy/softs/bin:$PATH
export PATH=/home/seekcy/database/mysql/bin:/home/seekcy/database/influxdb/bin:/home/seekcy/database/mongodb/bin:$PATH
清空原文件,把上面整段复制进去,然后执行命令刷新环境变量
source /home/seekcy/.bash_profile
再次尝试重启服务,如果还有问题联系问题小组
转载请注明作者和出处,并添加本页链接。
原文链接:
//svn.seekcy.com:33382/779