MongoDB with replica sets before switchover:
mongodb-01: {role: primary, priority: 9, hidden: 0}
mongodb-02: {role: secondary, priority: 1, hidden: 0}
mongodb-03: {role: secondary, priority: 1, hidden: 0}
mongodb-04: {role: secondary, priority: 7, hidden: 0}
mongodb-05: {role: secondary, priority: 1, hidden: 0}
MongoDB with replica sets after switchover:
mongodb-01: {role: secondary, priority: 1, hidden: 0}
mongodb-02: {role: secondary, priority: 1, hidden: 0}
mongodb-03: {role: secondary, priority: 1, hidden: 0}
mongodb-04: {role: primary, priority: 7, hidden: 0}
mongodb-05: {role: secondary, priority: 1, hidden: 0}
Steps to swithcover:
- Run query on secondary server mongodb-02, mongodb-03, mongodb-05.
replica:SECONDARY> rs.freeze(60)
- Run query on primary server.
replica:PRIMARY> cfg = rs.conf();
replica:PRIMARY> cfg.members[0].priority = 1;
replica:PRIMARY> cfg.settings.electionTimeoutMillis = 2000;
replica:PRIMARY> rs.reconfig(cfg);
- Connect to new primary mongodb-04 and reset electionTimeoutMillis setting.
replica:PRIMARY> cfg = rs.conf();
replica:PRIMARY> cfg.settings.electionTimeoutMillis = 10000;
replica:PRIMARY> rs.reconfig(cfg);