我目前使用的MongoDB版本是4.0
。我想升级到6.0
。根据官方文档,不能从4.0
跳到6.0
。必须遵循以下顺序:4.0 -> 4.2 -> 4.4 -> 5.0 -> 6.0
。
但这是一个漫长的过程。必须做4次测试,每次升级后一次。
所以,我想创建一个新的MongoDB 6.0
示例,并将所有数据从旧示例迁移到新示例。
我遇到了以下实用程序:mongodump
和mongoexport
。
mongoexport的问题:(找到了here)
Avoid using mongoimport and mongoexport for full instance production backups.
They do not reliably preserve all rich BSON data types,
because JSON can only represent a subset of the types supported by BSON.
字符串
Mongodump的问题:(找到了here)
using mongorestore to restore a 4.0 dump to 4.4 is not supported.
The reason for this is that collection options, index options,
and oplog entry formats can change between versions.
We do not test dump/restore from different versions so we cannot
guarantee that it will work correctly in all cases.
Because of this, it is not officially supported.
型
是否有解决上述任何问题的方法?
我可以接受MongoDB在迁移过程中的停机。我只想传输数据。不想传输索引之类的东西,这些东西可以在传输完成后在新示例中构建。
这可能吗?这种方法有什么缺陷吗?我应该坚持使用4.0 -> 4.2 -> 4.4 -> 5.0 -> 6.0
吗?
谢谢你,谢谢
1条答案
按热度按时间ergxz8rk1#
好吧,我在同一个地方,有v4版本,需要升级。考虑到没有简单的方法来获得不涉及移植数据的升级路径,我将实现一个新的通用方法,我将创建一个控制台应用程序来推断/导入JSON中的所有DB数据,每个
Collection
都在自己的file.json
中。优点:我可以在未来将这些数据移植到任何DB,不再限于DB版本或类型,将来需要变化时可以自由切换。
缺点:备份文件管理和额外的开发时间/精力。