我有一个带有1个主节点和4个辅助节点的Replicaset。新添加的两个辅助程序在show database命令上给我一个错误。
副本集:SECONDARY>使用管理员
切换到数据库管理员
副本集:SECONDARY>显示数据库
listDatabases失败:{snote / mongo / shell / mongo.js:{“ note”:“ from execCommand”,“ ok”:0,“ errmsg”:“ not> master”}}
rs.status()对于次要库来说都是可以的。卫生1,状态2。
rs.conf()有区别(主机/端口偏离路线除外):
在较旧的辅助服务器上使用command只会返回_id,主机和优先级。
较新的辅助节点具有:_id,host,arbiterOnly,buildIndexes,隐藏的,优先级,标签,slaveDelay,票和具有以下内容的整个设置节点:chainingAllowed,heartbeatTimeoutSecs,getLastErrorModes,getLastErrorDefaults。很奇怪,因为使用rs.add(host:port)以相同的方式添加了成员。
db.version():-较旧的次要和主要版本:2.6.5-较新的次要版本:3.0.6
使用显示数据库命令,其他两个(较旧的)辅助副本完全没有问题。它似乎与较新的3.0.6版本有关。使用db.SlaveOK有助于3.0.6。,但不能使用mongodump.exe作为参数给出。
知道如何在次要数据库上默认使用“显示数据库”命令吗?
这是正常现象。
根据手册,您需要执行
rs.slaveOk()
它为以下操作提供了一个快捷方式:
db.getMongo()。setSlaveOk()
这允许当前连接允许读取操作在辅助成员上运行。请参阅readPref()方法,以更精细地控制mongo shell中的读取首选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句