副本集的 mongoimport 命令是否需要包括仲裁者在内的所有副本集成员?

Does the mongoimport command for a replica set require all replica set members including the arbiter?

我是 运行 MongoDB 2.6.2,我有一个副本集,其中有一个主服务器、一个辅助服务器和一个仲裁服务器。 运行 仅包含一个或两个副本集成员的 mongoimport 命令是否有任何不利影响?

更具体地说,是否需要在 mongoimport 命令的 --host 选项中指定仲裁程序?该文档清楚地描述了主机名格式 (here),但没有警告需要指定多少成员。

mongoimport 命令应该是 运行 在 primary 主机上,因为这是一个插入操作,所有插入只能在主节点上完成。 Secondary 节点不能直接接受写操作。在 replicaset 中,主节点首先获取数据,然后 secondary 节点读取 primary 节点的 oplog 并复制操作。

简单地说,如果您正在使用 replicaset 并且您希望使用 mongoimport 导入数据,那么您必须将 primary 节点作为主机传递给 mongoimport 命令。

此外,mongoimport 命令不关心 arbiter。它只关心是否可以将数据写入节点。在 replicaset 的情况下,您只能在 primary 节点上插入数据。