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

时间:2015-05-15 17:41:38

标签: mongodb mongoimport replicaset

我正在运行MongoDB 2.6.2,我有一个带有主要,辅助和仲裁的副本集。仅使用一个或两个副本集成员运行mongoimport命令是否有任何不利影响?

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

1 个答案:

答案 0 :(得分:4)

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

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

此外,mongoimport命令并不关心arbiter。所有它关心的是,它是否可以将数据写入节点。如果是replicaset,则只能在primary节点上插入数据。