第一次从 4.0 、4.2 、4.4 升级后一切正常,数据库可用。但是马上重启了电脑,然后再从 4.4 启动就碰到了 Abort Tray 6 。
第一次看 log 是 4.2 升 4.4 某些东西不认,让我回 4.2 。结果到 4.2 启动直接崩了。
DB 有备份,读档后从 4.0 又升了一遍,结果还是升到 4.4 的时候一切顺利,然后重启又挂了。
会不会和我重启太快有关?是不是 mongo 还要干点别的啥需要点时间,所以升级完要让它缓一会儿?这次说是有 WiredTiger 版本不明。
目前先回档到 4.0 了,毕竟几十个 G 复制一下也挺麻烦的。蹲个解答。
1
wongy 2020-12-27 10:10:12 +08:00
我的 mongodb 一直是 4.0.7,看来是不能乱升级了。
|
2
MeteorCat 2020-12-27 11:44:59 +08:00 via Android
不要乱升级,我也被滚挂过,你是不是指定源配置的 MongoDB
|
3
JCZ2MkKb5S8ZX9pq OP |
4
rrfeng 2020-12-27 13:20:47 +08:00 via Android
估计没有正常关闭
|
5
Lemeng 2020-12-27 16:28:42 +08:00
不怎么敢升级,都是看完反馈后,没人说有问题,而且有有必要升,才升级
|
6
hantsy 2020-12-27 17:57:22 +08:00
Docker 升级?
|
7
JCZ2MkKb5S8ZX9pq OP @Lemeng 有什么特别推荐的新功能嘛?我扫了一眼感觉没有特别用得上的
|
8
onion83 2020-12-28 10:36:54 +08:00
Mongodb 就这特性 一般同版本升级问题不大,但是跨版本升级可能问题就大了 在 3.x 系列就遇到过坑,一般的操作是小版本平滑升级 如 4.0 -> 4.2 -> 4.4,mongodb 的更新策略比较激进,会采用直接不兼容的策略,鼓励(坑)你升级到最新版本,所以如果不最求新特性,并且 1 年之内没更新过就不要考虑直接替换程序更新了,挂的几率 > 90%
最稳妥的操作是采用 mongodump 导出再导入的方式,先评估下数据有没丢,驱动是否正常工作。如果是生产环境还要考虑是否要做热迁移,是否需要停机等。 快过年了,如果是公司项目我建议别折腾,没事找事干。 |
9
euler13 2020-12-28 12:37:25 +08:00
mongdb 升级坑很多,珍爱生命,远离 mongo 。
一个数据库两年没升级,OS 升级了, 再尝试 把 mongodb 启动起来, 结果要从 3.x 一个版本一个版本升,升 N 次才能升级到新版本。加上新的 OS 上面安装老版本的 mongo 非常麻烦,新老版本兼容性太差,果断放弃。 |
10
JCZ2MkKb5S8ZX9pq OP @onion83 嗯,dump 导出这个的确应该是最稳妥的方式了。不过我 db 和 collection 众多,会不会操作很繁琐?另外 index 之类的怎么办呢?有什么好的实践流程嘛?
|
11
onion83 2020-12-29 01:06:06 +08:00 1
@JCZ2MkKb5S8ZX9pq mongodump 可以并行导入和导出,具体看 --help 几十 G 数据不算太大问题,不过 mongodb 对磁盘 IO 要求很高,我的做法会开一台超大内存的机器,将 data 文件夹放到 /dev/shm 中然后开 10 个线程并发导入,速度直接 x10 以上,弄好后再将结果拷贝回磁盘中,重新启动实例,屡试不爽。
|