【问题标题】:Mongodump with Replica Set : how to force on secondary?带有副本集的 Mongodump:如何强制辅助?
【发布时间】:2014-03-05 10:39:15
【问题描述】:

我的 MongoDB 副本集备份有一个奇怪的问题。我有 2 台服务器(一台主服务器和一台辅助服务器),每 2 小时运行一次备份任务。

我用这个:mongodump.exe --db MyBase --out "d:\Backups"

但是,当我运行此备份时,我的客户端应用程序 (c#) 会抛出如下错误:

MongoDB.Driver.MongoConnectionException: 无法连接到与读取首选项 Primary 匹配的副本集的成员

我认为 mongodump 对客户端应用程序没有任何影响。所以,就这么说吧。

我只想在辅助服务器上强制执行我的备份操作。我该如何进行?运行命令是什么?

感谢您的帮助。

【问题讨论】:

    标签: mongodb mongodump replicaset


    【解决方案1】:

    我们也可以在 mongodump 命令中设置 readPreference。此功能从 mongoDB 3.2 版开始可用

    --readPreference '次要'

    https://docs.mongodb.com/manual/reference/read-preference/#replica-set-read-preference-modes

    【讨论】:

      【解决方案2】:

      如果你想备份辅助,你应该在服务器上编写你的'mongodump'命令,secondary'mongod'正在运行。

      或者您可以显式设置辅助主机和端口:
      mongodump.exe --host <secondary_host> --port <secondary_port> --db <db_name> --out <out_folder> --oplog

      【讨论】:

      • 一个replicaSet 连接字符串比哪个服务器是主/次要稳定得多。使用 replicaSet 连接字符串的想法比每次主/从交换角色时都必须更改代码有用得多。
      • @adamb0mb 如何指定一个replicaSet 连接字符串? mongodump 的手册没有提到这样的事情,并且将 URI 作为主机参数传递会导致错误(无法访问服务器)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      相关资源
      最近更新 更多