请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

docker服务重启后,pxc1节点闪退,Redis各节点能启动,Redis集群连接不上。


老师您好,docker服务重启之后,pxc的node1 闪退,其他节点可以启动,但是mysql客户端根本无法连接,您说“执行 docker rm node1”,其他节点客户端依旧连接不上,而且,Redis各个节点都能启动,但是集群也连接不上,请详细给出解决方法,谢谢!

https://img1.sycdn.imooc.com//szimg/5b1bc30f0001b7b711350165.jpghttps://img1.sycdn.imooc.com//szimg/5b1bc2f700018d8b07250164.jpg

正在回答

1回答

同学你好,Docker服务重启之后,如果是普通容器,重新启动即可,但是集群的容器比较特殊重启会闪退或者使用不了,这也是我们创建数据卷持久化保存数据的原因。如果你重启了容器,把PXC集群节点删除,然后重新创建PXC集群,因为数据卷还在所以不必担心。Redis集群也是如此,但是Redis是用内存缓存数据,没有持久化存储,一旦重启数据都会丢失,为了解决这个问题,我们要使用Redis的AOF技术。Redis所有的行为都被记录在日志里面,所以宕机之后可以利用日志恢复Redis的数据。当然了日志也应该保存在数据卷里面才行。

0 回复 有任何疑惑可以回复我~
  • 提问者 暖先生 #1
    谢谢老师的耐性回答,刚才Redis集群无法连接是因为重启后忘记到容器内部执行:/usr/redis/src/redis-server /usr/redis/redis.conf 了。
    但是pxc1我删除了这个节点,然后 docker volume create v1.1,然后重新创建pxc1节点,在启动其他节点,整个集群就起来了,之后其他节点数据也跟清空了,因为他和pxc1节点去同步了,所以数据全没了(幸好是测试,不然就呵呵了.......),为什么就单单重启docker服务之后 之前的pxc1用的v1就闪退呢,这个太脆弱了了,感觉docker 里pxc集群根本不敢用(之前在宿主机源码安装没有这个问题),求解?
    回复 有任何疑惑可以回复我~ 2018-06-09 22:34:31
  • 神思者 回复 提问者 暖先生 #2
    因为node1创建的时候所有节点都与之同步,一旦node1宕机重启之后,它找不到同步的节点无法加入集群所以就闪退了。node1宕机之后正确的做法是删除node1容器,再创建一个新的node1节点,然后别忘了挂上v1数据卷,再有创建node1的时候要加上join同步的节点参数,node2~node5任意即可。
    回复 有任何疑惑可以回复我~ 2018-06-09 22:43:23
  • 老师你好,我也遇到这样的问题,能给个详细的操作步骤吗
    回复 有任何疑惑可以回复我~ 2018-08-03 09:59:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信