Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB副本集不同步?_Mongodb_Mongodb .net Driver_Database Replication - Fatal编程技术网

MongoDB副本集不同步?

MongoDB副本集不同步?,mongodb,mongodb-.net-driver,database-replication,Mongodb,Mongodb .net Driver,Database Replication,我一直在遵循教程中有关将副本集部署到开发/测试环境的步骤: 我有三个mongod.exe实例正在运行,并且所有三个都能够正确连接 我想在插入时验证辅助设备是否正确地同步到主设备,但是当我插入时,似乎没有任何迹象表明辅助设备正在完成 例如,我将一个MongoShell连接到主服务器,并运行以下命令: db.createCollection("testCol") db.testCol.insert( { item: "card", qty: 15 } ) 这将创建“testCol”集合并向其中插

我一直在遵循教程中有关将副本集部署到开发/测试环境的步骤:

我有三个mongod.exe实例正在运行,并且所有三个都能够正确连接

我想在插入时验证辅助设备是否正确地同步到主设备,但是当我插入时,似乎没有任何迹象表明辅助设备正在完成


例如,我将一个MongoShell连接到主服务器,并运行以下命令:

db.createCollection("testCol")
db.testCol.insert( { item: "card", qty: 15 } )
这将创建“testCol”集合并向其中插入一个值

当我这样做时:

show collections
“testCol”集合显示良好,并且我插入的项存在

我的问题是:二级副本不应该与主副本同步并复制集合和项目吗?

启动另一个MongoShell并连接到其中一个辅助服务器,我发现我在主服务器上创建的集合没有显示出来

我只是误解了副本集的工作原理,还是为了让二级副本复制插入操作,我还需要设置其他内容


我按照我在开始时给出的链接中的说明进行了操作,因此我设置的所有配置都完全相同。

这太尴尬了

结果是我看到的数据库不正确。按照我的配置方式,我需要使用名为
test
的数据库,但我一直在
local
上进行插入

回顾副本集的设置说明,我不太确定我在哪里配置了MongoShell以连接到
test
,但连接到该数据库并对主数据库进行更改似乎可以解决所有问题


以下是我的MongoShell连接到Primary的方式:

MongoDB shell version: 2.4.5
connecting to: 127.0.0.1.27017/test
可能是在我第一次设置MongoDB时配置了到
test
的连接?现在还不太确定


再看一看,当您连接MongoShell时,它似乎会自动连接到
测试
数据库。不知道如何更改我使用的快捷方式中的参数以使其指向其他数据库


在mongo shell中,db是引用当前 数据库该变量将自动设置为默认数据库 使用“用于切换当前数据库”时设置“测试或”

我猜这意味着没有可以传递的参数,您必须手动执行
使用


找到了

如果设置了mongo.exe的快捷方式,请将其设置为目标:

C:\mongodb\bin\mongo.exe <db name> --host <host> --port <port>
C:\mongodb\bin\mongo.exe--主机--端口

以前我只有
--port
参数,但添加其余参数后,我可以直接在特定数据库中启动。

请发布
rs.status()的输出。
“完全相同”很棘手,因为示例中有
等占位符。你的主机名是什么?如果您发布了确切的配置,这将很有帮助。同时检查防火墙设置(尝试直接从控制台连接到每个
mongod
)。