【问题标题】:MongoDB replica set - copyDatabase with readPreference?MongoDB副本集-带有readPreference的copyDatabase?
【发布时间】:2017-03-09 23:26:54
【问题描述】:

来自Connection String URI Syntax 上关于我们拥有的副本集的文档:

以下连接到具有三个成员的副本集并将读取分配到辅助节点:

mongodb://example1.com,example2.com/?replicaSet=test&readPreference=secondary

这正是我需要做的,但是我正在尝试确定copyDatabase 命令要使用的正确语法(如果甚至支持readPreference)。它的主机 URI 语法如下所示:

test/example1.com,example2.com

...例如...

db.copyDatabase('myDb', 'myDb', 'test/example1.com,example2.com')

我可以在最后加上?readPreference=secondary 并让它按预期工作吗?我没有方便的方法在我的环境中自己测试这个,或者我会。希望这里的人可能知道他们的头脑。

【问题讨论】:

    标签: mongodb replication database


    【解决方案1】:

    读取首选项是客户端/驱动程序端的概念。服务器不知道请求的读取首选项,因此您无法在服务器端验证读取首选项。您可以验证某些查询是否通过例如mongostat 发送到辅助服务器,或者您可以在每个数据库服务器上使用db.serverStatus().opcounters 比较“查询”计数预查询和后查询。对于数据库服务器状态的完整列表,使用db.serverStatus()

    【讨论】:

    • 这很有道理,我没有考虑过它是在客户端管理的。文档“有点”薄。 :) 非常感谢
    猜你喜欢
    • 2021-08-06
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多