1
kop1989 2021-06-04 08:59:46 +08:00 1
意思是,容器是随时可能被停止,崩溃甚至是删除的。
如果容器被停止时,数据库写入未完毕,那么就有可能导致数据库文件损坏。 |
3
ca1123 OP @kop1989 另外老哥, "(1)数据库程序与数据分离
如果使用 Docker 跑 MySQL,数据库程序与数据需要进行分离,将数据存放到共享存储,程序放到容器里。如果容器有异常或 MySQL 服务异常,自动启动一个全新的容器。另外,建议不要把数据存放到宿主机里,宿主机和容器共享卷组,对宿主机损坏的影响比较大。" 这段话里面, 放在共享存储里为什么就安全了呢, 共享存储不就是个文件系统么? 和 Union FS 有啥本质区别呀. 如果是因为数据库程序异常导致数据异常, 那用不同的文件系统也解决不了问题呀. 重启的数据库程序看到的还是损坏的数据. 怎么 Union FS 恢复不了, 网络文件系统就能恢复呢? |
4
xupefei 2021-06-07 06:18:47 +08:00 via iPhone 1
> 数据库程序与数据需要进行分离,将数据存放到共享存储,程序放到容器里。如果容器有异常或 MySQL 服务异常,自动启动一个全新的容器。
这里说的应该是让你把 var/mysql 映射一个 volume 出来,免得删 container 的时候把数据库删掉。 > 另外,建议不要把数据存放到宿主机里,宿主机和容器共享卷组,对宿主机损坏的影响比较大。 我估计这里是让你把 volume 通过 nfs ceph 啥的存到异地去,省得 docker 的机器坏了丢数据。但这方案太花钱了,在绝大多数情况下不现实。 另外这中文狗屁不通,建议原作者重新学习语文。 |