我正在本地环境中对mongodb进行故障转移测试。我有两个mongo服务器(hostname1,hostname2)和一个仲裁服务器。
我的mongoid.yml文件中有以下配置
localhost:
hosts:
- - hostname1
- 27017
- - hostname2
- 27017
database: myApp_development
read: :primary
use_activesupport_time_zone: true
现在,当我启动rails应用程序时,一切正常,数据从主(hostname1)读取。然后我终止了主要(hostname1)的mongo进程,因此辅助(hostname2)成为主要进程并开始提供数据。
然后在一段时间后我启动了hostname1的mongo进程,然后它成为副本集中的辅助进程。 现在主要(hostname2)和辅助(hostname1)正常工作。
真正的问题从这里开始。
我终止了我的新主服务器(hostname2)的mongo进程,但是这次,辅助服务器(hostname1)没有成为主服务器,并且对rails应用程序的任何进一步请求都会引发以下错误
Cannot connect to a replica set using seeds hostname2
请帮忙。提前谢谢。
**更新:**
我在mongo repl_connection类中输入了一些记录器,并遇到了这个。
当我启动rails应用程序时,我在种子数组中有两个主机,即mongo驱动程序跟踪。但在第二次故障转移期间,只有发生故障的主机出现在此阵列中。
因此,我也想知道其中一个主机是如何以及何时从种子列表中删除的。