ttserver(Tokyo Tyrant)生产故障解决方法

    /    2018-09-13

提示:Tokyo Tyrant是一个支持高并发的分布式持久存储系统,类似的memcachedb(注意:不是memcache),其详细细节,请参考网上其他文章或参考[老男孩Linux私塾网站运维课程系列]-Tokyo Tyrant双主多从高可用集群部署及调优高并发应用实践

现象:系统意外宕机,导致启动ttserver报错(已加为开机自启动),如下所示:

[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
2011-05-27T15:30:00+08:00 ERROR the process 3774 may be already running

实际解决步骤:

1.报错提示已经运行了,那就看看是否存在该服务端口吧

[root@oldboy-ttserver ~]# lsof -i tcp:13000
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
2011-05-27T15:30:32+08:00 ERROR the process 3774 may be already running
#====端口没有,就是起不来。

2.提示进程号为3774,那就检查下进程吧,依然没有

[root@oldboy-ttserver ~]# ps -ef|grep 3774
root 30392 29936 0 15:30 pts/0 00:00:00 grep 3774

提示:比较奇怪吧。。继续。

3.查看下pid文件,果然有进程ID存在

[root@oldboy-ttserver ~]# cat /data/snsttserver/snsttserver.pid
3774

提示:这是ttmasterctl控制脚本(我自己写的ttserver启动脚本)里加的,用来记录TTSERVER 进程 pid的

4.清空snsttserver.pid

[root@oldboy-ttserver ~]# > /data/snsttserver/snsttserver.pid
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
2011-05-27T15:31:26+08:00 ERROR the process 0 may be already running

提示:还是报错,看来有这个PID file就无法启动了。

5.既然不给面子,就干掉他(指snsttserver.pid文件)

[root@oldboy-ttserver ~]# rm -f /data/snsttserver/snsttserver.pid
[root@oldboy-ttserver ~]# /etc/init.d/ttmasterctl start
#===>启动成功
[root@oldboy-ttserver ~]# netstat -lnt|grep 13000
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:13000 0.0.0.0:* LISTEN
[root@oldboy-ttserver ~]# lsof -i tcp:13000
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
ttserver 30406 root 20u IPv4 829766 TCP *:13000 (LISTEN)

服务也随之正常。。。

(10)

分享至