MongoDB副本集不同步?
我一直在遵循教程中有关将副本集部署到开发/测试环境的步骤: 我有三个mongod.exe实例正在运行,并且所有三个都能够正确连接 我想在插入时验证辅助设备是否正确地同步到主设备,但是当我插入时,似乎没有任何迹象表明辅助设备正在完成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”集合并向其中插
例如,我将一个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
)。