首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongodb本地主机:27017副本集切换到次要本地主机:27027

Mongodb本地主机:27017副本集切换到次要本地主机:27027
EN

Stack Overflow用户
提问于 2021-08-22 05:38:09
回答 3查看 607关注 0票数 0

我对mongodb相当陌生,只有几个月的时间。我刚刚转换了我的mongodb数据库以支持辅助副本集,这样我就可以查看集合了。我只添加了一个次要的,我猜现在可能不是最好的阅读后,你应该创建一个奇数,但它是一个本地主机上的一台机器。我看了说明,让复制正常工作了半天,运行我的程序。但由于某种原因,它最近将端口27017的数据库从主数据库切换到次要数据库。第一次在本地宿主:27017,第二次在本地宿主:27027。现在,我的正常程序无法连接到本地主机:27017,没有错误,我相信这是因为它是一个次要的副本集,当它以前是主要的,假设你只能连接到一个主程序。这是错误信息。

代码语言:javascript
运行
复制
Exception in thread "main" com.mongodb.MongoNotPrimaryException: Command failed with error 10107 (NotWritablePrimary): 'not master' on server localhost:27017.

  1. 我很困惑为什么mongodb一开始就切换了副本集主目录。我怀疑是否发生了错误,但当然有可能,但在几个月的开发过程中,我还没有发生过一个"localhost“错误。

就目前而言,

  1. ,理想的情况下,我将如何切换回27017成为主要。我如何做到这一点,以便我现有的程序可以再次运行?

  1. 最终在生产过程中,假设查找到ip地址的DNS条目并突然因故障转移而更改主服务器,那么处理这一问题的最佳方法是什么?

给出问题3的

  1. 有一点涉及到,在我的开发环境中有什么可以更好地模拟生产
  2. 吗?

我广泛地使用StackOverflow,但这是我的第一篇帖子,所以感谢任何能提供建议的人。

EN

回答 3

Stack Overflow用户

发布于 2021-08-22 05:56:33

  1. 不了解更多的副本配置和切换的情况,我不确定是否有人能自信地回答问题1,但与问题3相比,它可能并不重要。

  1. 当您想手动切换主服务器时,您可以操作优先级设置:

https://docs.mongodb.com/manual/tutorial/force-member-to-be-primary/

或者运行手动命令来冻结或退出当前的主服务器:https://docs.mongodb.com/manual/tutorial/force-member-to-be-primary/#force-a-member-to-be-primary-using-database-commands

  1. 最安全的选项是确保应用程序知道副本集中的所有副本。然后,当您遇到一些意外发生的情况时,应用程序将失败到可写的db,而不会出现任何问题。

https://mongodb.github.io/mongo-java-driver/3.4/driver/tutorials/connect-to-mongodb/#connect-to-a-replica-set

我只能建议将一些VM或容器设置为副本集成员,以便更好地表示生产environment.。

https://hub.docker.com/_/mongo

票数 1
EN

Stack Overflow用户

发布于 2021-08-22 06:17:08

我能够通过使用包含两个副本集的连接字符串来解决这个问题,我不知道我需要这样做。例如对于java:

代码语言:javascript
运行
复制
mongoClient = MongoClients.create("mongodb://localhost:27017,localhost:27027");

这也适用于Mongo,因此我能够连接到二级数据库。我不知道当你试图连接时,你需要提供到所有复制集的路径,但是回想起来,如果有什么问题的话,那就有意义了。

票数 1
EN

Stack Overflow用户

发布于 2021-08-22 16:23:50

如果您需要一个副本集进行测试,您可以创建一个单节点RS。按照创建RS的说明,但只添加一个节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68878789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档