我有一个Replicaset运行1个主要和4个辅助。 新添加的两个辅助节点在show databases命令上给出了错误。
replicaset:SECONDARY>使用管理员
切换到db admin
replicaset:SECONDARY>显示数据库
listDatabases失败:{“note”:“来自execCommand”,“ok”:0,“errmsg”:“not> master”}在src / mongo / shell / mongo.js:47
rs.status()对于辅助设备都可以。健康1,州2。
rs.conf()(主机/端口除外)有差异:
在较旧的辅助节点上使用命令只返回: _id,主持人和优先权。
较新的辅助人员: _id,host,arbiterOnly,buildIndexes,hidden,priority,tags,slaveDelay,votes和整个设置节点:chainingAllowed,heartbeatTimeoutSecs,getLastErrorModes,getLastErrorDefaults。 很奇怪,因为使用rs.add(host:port)以相同的方式添加成员。
db.version(): - 较旧的辅助人员和小学:2.6.5 - 较新的二级:3.0.6
使用Show Databases命令,其他两个(较旧的)辅助对象完全没有问题。 它似乎与较新的3.0.6版本有关。 使用db.SlaveOK有助于3.0.6。 ,但不能使用mongodump.exe作为参数给出。
我知道如何在Secondaries上使用Show Databases命令吗?
答案 0 :(得分:0)
这是正常行为。
根据manual,你需要执行
rs.slaveOk()
提供以下操作的简写:
db.getMongo()。setSlaveOk()
这允许当前连接允许读取操作在辅助成员上运行。请参阅readPref()方法,以便在mongo shell中对读取首选项进行更细粒度的控制。