1
JCZ2MkKb5S8ZX9pq OP 补充:目前的版本是 mongodb 3.6
|
2
JCZ2MkKb5S8ZX9pq OP 看到现在 4.2 了,有必要升级嘛?有坑吗?
|
3
Infernalzero 2019-10-23 14:24:42 +08:00
需要 compact,但是这个操作要谨慎,会影响业务
|
4
JCZ2MkKb5S8ZX9pq OP @Infernalzero compact 过了,图上的就是 compact 之后的结果……
|
5
asilin 2019-10-23 14:47:04 +08:00
我们之前也遇到了这个问题,版本 3.6。
当时的解决方式是使用 rocksdb 引擎的 mongo 3.4 版本,根据业务模型将数据从老的集群导出,并导入到新的集群,切换 mongos 配置到新集群,写入没有问题后将中间切换丢的数据再补上。 之所以使用 rocksdb 引擎的 mongo 3.4 版本,因为这个引擎对 SSD 支持友好,并能够在删除数据后释放逐步物理空间。 |
6
JCZ2MkKb5S8ZX9pq OP @asilin 好的吧,跟复制集差不多,看来主要思路还是要重写一遍数据了。
|
7
JCZ2MkKb5S8ZX9pq OP |
8
JCZ2MkKb5S8ZX9pq OP 最终直接用 duplicate 复制了一个,storagesize 和 index 都变小了。
确认没问题再把旧的删了。 旧的_id 也可以复制过来。 |
9
JCZ2MkKb5S8ZX9pq OP 其实感觉下次再搞,直接在清洗数据的时候就直接导出到新的 collection 里,这样原数据也安全点,新出来的也小一点。
|
10
JCZ2MkKb5S8ZX9pq OP @asilin
碰到个莫名的问题 一个数据集,复制之后,多出来小两百条 doc,碰到过嘛? note_all_copy: 100.0% 5460905/5460732 5460905 docs successfully imported, 0 docs failed. 感觉等会儿要再比对看看了 |