我在一个码头容器中运行了MariaDB 10.1,我想升级到10.2。我的数据保存在/var/lib/mysql映射到的卷( my.cnf )中,该卷未被映射并保持不变。什么是正确的程序结束与玛丽亚10.2容器与我的数据完好无损?
我所考虑的程序如下:
我关注的是第三步。在“标准”(非码头)升级过程中,升级过程是否会以某种方式改变数据目录?如果是这样的话,在升级期间对/var/lib/mysql目录所做的任何更改都不会作为它的外部Docker对卷进行更改。
我的程序正确吗?我的担心有道理吗?
发布于 2021-07-08 15:35:39
MariaDB文档确实有一个来自10.1 -> 10.2 documentation的升级,值得一读。
虽然大部分都是关于包升级的,但是在一个可选的SET GLOBAL innodb_fast_shutdown=0
和使用升级的过程中有一些注释。
查看挂载点并获取datadir的副本是谨慎的,特别是在您没有最近的备份或有快速恢复业务需求的情况下(但是如果是这样的话,您应该使用从备份恢复和内部升级过程中的还原来测试后期版本)。
在关闭之前,在没有SET GLOBAL innodb_fast_shutdown=0
的情况下进行内部升级将导致innodb开始恢复并将重做日志应用到datadir。有很小的风险,这可能是做一些不同于它以前所做的事情。
在新容器启动后,您可以测试数据是否存在。准备好之后,运行mysql_upgrade
(我通常会执行docker exec -i {container} mysql_upgrade
)。希望当我想出一种可靠的方法来实现这一点时(gh#350,MDEV 25670)将是自动化的。
正如蒙蒂所说的"您应该能够从任何早期的MariaDB版本升级到最新的版本。“(或任何中间的),所以不要觉得你必须要10.1 -> 10.2,最后是10.3。
https://stackoverflow.com/questions/68308764
复制相似问题