MongoDB。新添加的副本集成员无法显示数据库
MongoDB. Newly added replicaset members can't show databases
我有一个 Replicaset 运行 1 个主副本和 4 个副副本。
新添加的两个辅助节点让我在 show databases 命令上出错。
replicaset:SECONDARY> use admin
switched to db admin
replicaset:SECONDARY> show databases
listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not > master" } at src/mongo/shell/mongo.js:47
rs.status() 二级都可以。健康 1,状态 2。
rs.conf() 有(当然 host/port 除外)差异:
在较旧的辅助设备上使用命令只会返回:
_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.
知道如何在辅助节点上默认使用“显示数据库”命令吗?
这是正常行为。
根据manual你需要执行
rs.slaveOk()
它为以下操作提供了一个shorthand:
db.getMongo().setSlaveOk()
这允许当前连接允许对次要成员的 运行 进行读取操作。请参阅 readPref() 方法以更细粒度地控制 mongo shell.
中的读取首选项
我有一个 Replicaset 运行 1 个主副本和 4 个副副本。 新添加的两个辅助节点让我在 show databases 命令上出错。
replicaset:SECONDARY> use admin
switched to db admin
replicaset:SECONDARY> show databases
listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not > master" } at src/mongo/shell/mongo.js:47
rs.status() 二级都可以。健康 1,状态 2。
rs.conf() 有(当然 host/port 除外)差异:
在较旧的辅助设备上使用命令只会返回: _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.
知道如何在辅助节点上默认使用“显示数据库”命令吗?
这是正常行为。
根据manual你需要执行
rs.slaveOk()
它为以下操作提供了一个shorthand:
db.getMongo().setSlaveOk()
这允许当前连接允许对次要成员的 运行 进行读取操作。请参阅 readPref() 方法以更细粒度地控制 mongo shell.
中的读取首选项