在容器中恢复Percona Xtradb
我在容器上运行Percona Xtradb集群 。
我把容器停了下来,然后开始了。
我有错误:
2017-02-11T13:12:00.423566Z 0 [错误]find1笔交易! 这意味着mysqld上次没有正常closures,并且在崩溃后手动删除了关键的恢复信息(最后一个binlog或tc.log文件)。 您必须使用–tc-heuristic-recover开关启动mysqld以提交或回滚挂起的事务。
2017-02-11T13:12:00.423739Z 0 [错误]正在中止
消息说我需要mysqld --tc-heuristic-recover
但是在mysql启动失败后容器停止运行。
我的问题是:
-
我怎样才能解决这个问题,而不是
run
新的容器,但start
现有的一个? -
主进程(
mysqld
)停止后有没有办法让Docker容器仍然运行?
该容器使用卷(请参阅此处 ),所以您的数据不在容器内。
要find它的存储位置,请使用docker container inspect YOUR_CONTAINER_NAME
,然后在输出中searchMounts
。 如果你安装了jq
你可以使用类似的东西
$ docker container inspect YOUR_CONTAINER_NAME | jq ".[0].Mounts"
一旦find存储数据的目录,就应该创build一个备份 。
然后,您可以创build一个新的容器,并绑定到该目录。 就像是
$ docker run -it -v VOLUME_PATH:/var/lib/mysql OTHER_OPTIONS_HERE image_name /bin/sh
这应该给你一个shell,你可以执行你可能需要的任何命令。
一旦你完成,你可以删除这个容器,希望percona现在应该工作。