如何将 5TB mongodb 复制到局域网内的新机器

How to copy 5TB mongodb to a new machine within LAN

我试过:

  1. 从旧机器到新机器的(自定义)DB 目录 SCP - 没有用。 Mongo 抱怨 wiredTiger 文件损坏

  2. 运行 mongo转储和 mongo恢复 - 花费了大约 5 倍的时间。过程被人打断以为已经结束,所以漏掉了少量数据

  3. 意识到 1. 由于 mongo 没有先正确关闭而没有工作。

再次尝试,出现以下错误:

2017-05-20T17:12:04.407+0100 E STORAGE [initandlisten] WiredTiger (24) [1495296724:407111][46215:0x7f7bf304bb80], file:collection-299--5136948165504185516.wt, session.open_cursor: /home/myuser/mymongodir/data/db//collection-299--5136948165504185516.wt:

Too many open files 2017-05-20T17:12:04.407+0100 I - [initandlisten] Invariant failure: ret resulted in status UnknownError 24: Too many open files at src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp 69`

你应该尝试 运行:

ulimit -a

它会给你当前的打开限制,然后你可以使用 -n 选项相应地增加它,这将增加你打开文件的限制,允许 mongo 到 运行 安全。