我第一次尝试了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和复制非常陌生,但我认为如果我在一个中做一些事情,它就会转到另一个中。那么,如果我在其中添加一条记录,我必须执行哪些操作才能跨计算机进行复制?
发布于 2013-03-26 03:54:35
要避免每次都键入rs.slaveOk()
,请执行以下操作:
创建一个名为replStart.js
的文件,其中包含一行:rs.slaveOk()
然后在启动Mongo shell时包含--shell replStart.js
。当然,如果您在本地连接到单个实例,这不会节省任何输入。
发布于 2012-02-29 16:51:00
在mongodb2.0中
您应该键入
rs.slaveOk()
在次要mongod节点中
发布于 2020-10-17 23:35:07
警告: slaveOk()已被弃用,可能会在下一个主要版本中删除。请改用secondaryOk()。rs.secondaryOk()
https://stackoverflow.com/questions/8990158
复制相似问题