具有副本集的Mongodump:如何强制使用辅助?

Fre*_*iot 7 mongodb mongodump replicaset

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

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

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

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

我认为mongodump在客户端应用程序上没有这样的影响.所以,那就是说.

我想仅在辅助服务器上强制执行备份操作.我该怎么办?运行的命令是什么?

谢谢您的帮助.

小智 7

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

--readPreference '次要'

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


Iva*_*Srb 1

如果您想备份辅助数据库,您应该在运行 辅助数据库“mongod”的服务器上编写“mongodump”命令。

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

  • 一个replicaSet连接字符串比哪个服务器是主/从服务器稳定得多。使用replicaSet 连接字符串的想法比每次主/辅交换角色时都必须更改代码有用得多。 (5认同)