gpt4 book ai didi

docker - 如何升级作为 docker 容器运行的 MariaDB

转载 作者:行者123 更新时间:2023-12-01 23:19:17 28 4
gpt4 key购买 nike

我在 Docker 容器中运行 MariaDB 10.1,我想升级到 10.2。我的数据保存在/var/lib/mysql 映射到的卷中,my.cnf 未映射且未更改。最终使用 Maria 10.2 容器且我的数据完好无损的正确程序是什么?

我考虑的程序如下:

  1. 停止 10.1 容器
  2. 复制数据量
  3. 创建一个新的 10.3 容器,将数据目录映射到复制的卷
  4. 启动新容器

我关心的是第 3 步。在“标准”(非 Docker)升级过程中,升级过程可能不会以某种方式改变数据目录吗?如果是这样,在升级期间应该对/var/lib/mysql 目录进行的任何更改都不会对该卷进行,因为它是外部 Docker。

我的程序正确吗?我的担心有道理吗?

最佳答案

MariaDB 文档确实从 10.1 -> 10.2 documentation 升级了值得一读。

虽然大部分内容都是围绕包升级,但也有一些关于可选 SET GLOBAL innodb_fast_shutdown=0 的注释,并以 mysql_upgrade 结尾.

A docker volume inspect查看挂载点并复制 datadir 是明智的,特别是如果您没有最近的备份或有快速恢复业务需求(尽管如果是这种情况,您应该通过从备份恢复来测试更高版本,并且就地升级程序)。

在关闭之前没有 SET GLOBAL innodb_fast_shutdown=0 的就地升级将导致 innodb 开始恢复并将重做日志应用到数据目录。这可能会做一些与以前不同的事情,这存在很小的风险。

随着新容器的启动,您可以测试数据是否存在。准备就绪后,运行 mysql_upgrade(我通常执行 docker exec -i {container} mysql_upgrade)。当我想到一种可靠的方法来执行此操作时,这有望实现自动化( gh#350MDEV-25670 )。

正如 Monty 所说的“You should be able to trivially upgrade from ANY earlier MariaDB version to the latest one”(或任何中间的),所以不要觉得您必须从 10.1 -> 10.2 到最终 10.3。

关于docker - 如何升级作为 docker 容器运行的 MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68308764/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com