在容器中恢复Percona Xtradb



我在容器上运行Percona Xtradb Cluster

我停止了容器,然后启动了它。

我有错误:

2017-02-11T13:12:00.423566Z 0 [错误] 找到 1 个准备好的交易! 这意味着 mysqld 上次没有正确关闭并且很严重 手动删除了恢复信息(最后一个二进制日志或 TC.log 文件( 崩溃后。你必须用 --tc-heuristic-recover 启动 mysqld 切换到提交或回滚挂起的事务。

2017-02-11T13:12:00.423739Z 0 [错误] 中止

该消息说我需要mysqld --tc-heuristic-recover但容器在 mysql 无法启动后停止。

我的问题是:

  • 如何解决此问题,而不是run新容器而是start现有容器?

  • 有没有办法让Docker容器在主进程(mysqld(停止后仍在运行?

该容器使用卷(请参阅此处(,因此您的数据不在容器内。

要查找存储位置,请使用 docker container inspect YOUR_CONTAINER_NAME ,然后在输出中搜索Mounts。如果您安装了jq,则可以使用类似

$ docker container inspect YOUR_CONTAINER_NAME | jq ".[0].Mounts"

找到存储数据的目录后,应创建备份

然后,可以创建一个新容器,并绑定到该目录。类似的东西

$ docker run -it -v VOLUME_PATH:/var/lib/mysql OTHER_OPTIONS_HERE image_name /bin/sh

这应该给你一个 shell,你可以在其中执行任何可能需要的命令。

完成后,您可以删除此容器,希望percona现在应该可以工作。

最新更新