【发布时间】:2023-03-10 05:20:01
【问题描述】:
我第一次尝试了 mongo 副本集。
我在 ec2 上使用 ubuntu 并启动了三个实例。 我使用了每个实例的私有 IP 地址。我选择了主要的,下面是代码。
mongo --host Private IP Address
rs.initiate()
rs.add(“Private IP Address”)
rs.addArb(“Private IP Address”)
此时一切都很好。当我访问http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:28017/_replSet 站点时,我看到我有一个主要、次要和仲裁者。
好的,现在开始测试。
在主上创建一个数据库是这样的代码:
use tt
db.tt.save( { a : 123 } )
在二级上,然后我这样做并得到以下错误:
db.tt.find()
error: { "$err" : "not master and slaveOk=false", "code" : 13435 }
我对 mongodb 和复制非常陌生,但我认为如果我在一个中做某事,它会转到另一个。那么,如果我在一个记录中添加一条记录,我需要做什么才能跨机器复制?
【问题讨论】:
-
发现我必须使用 rs.slaveOk();这让我想到另一个问题。我必须为每个查询都这样做吗?如果我在主节点上怎么办?
标签: mongodb amazon-ec2