【问题标题】:Recover Percona Xtradb in container在容器中恢复 Percona Xtradb
【发布时间】:2017-02-11 13:36:48
【问题描述】:

我有 Percona Xtradb Cluster 在容器上运行。

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

我有错误:

2017-02-11T13:12:00.423566Z 0 [错误] 找到 1 个准备好的交易! 这意味着mysqld上次没有正确关闭并且很严重 恢复信息(最后一个 binlog 或 tc.log 文件)被手动删除 撞车后。您必须使用 --tc-heuristic-recover 启动 mysqld 切换到提交或回滚待处理的事务。

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

消息说我需要mysqld --tc-heuristic-recover,但是在 mysql 启动失败后容器停止了。

我的问题是:

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

  • 在主进程(mysqld)停止后,有什么方法可以让 Docker 容器继续运行?

【问题讨论】:

标签: mysql docker percona xtradb


【解决方案1】:

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

要查找它的存储位置,请使用docker container inspect YOUR_CONTAINER_NAME,并在输出中搜索Mounts。如果你有jqinstalled 你可以使用类似的东西

$ 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 现在应该可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多