I need to upgrade MongoDB Sharded Cluster from 2.4 to 3.2 .
Based on documentation, I need to upgrade from 2.4->2..6->3.0->3.2
So it looks like lots of upgrade from 2.4 to go to 3.2 version.
We have 3 Shards with 3 replica sets.
Each Shard also runs 1 config server and router service
Upgrade Document : https://docs.mongodb.com/manual/release-notes/2.6-upgrade/#upgrade-a-sharded-cluster-to-2-6.
Question : 1. Should all cluster should be upgraded to 2.4 to 2.6 first and then follow same process from 2.6 to 3.0 and 3.0 to 3.2 ?
Upgrade Sharded Clusters: Upgrade the cluster’s meta data
It even did not mention that I need to shutdown existing config DB process. Do I need to shutdown 1 config server on shard and follow upgrade process ? Do I need to upgrade all config servers like this or since Config Server data is synched automatically , I need to upgrade only one config server and then replace binary for 2.6 on other servers.
Please clarify following points : Upgrade Sharded Clusters
Optional but Recommended. As a precaution, take a backup of the config database before upgrading the sharded cluster.
1. Disable the Balancer. Turn off the balancer in the sharded cluster, as described in Disable the Balancer.
This looks good.
2. Upgrade the cluster’s meta data. Start a single 2.6 mongos instance with the configDB pointing to the cluster’s config servers and with the --upgrade option.
It says Start a single 2.6 mongos. It is not clear to me, at this point should my whole existing cluster should be down or I need to just just down one config server and do upgrade. It even did not mention, I need to stop/shutdown config database on one server. It just says "Start with 2.6 binary with upgrade option" so it is confusing to me. Can someone clarify ?
To run a mongos with the --upgrade option, you can upgrade an existing mongos instance to 2.6, or if you need to avoid reconfiguring a production mongos instance, you can use a new 2.6 mongos that can reach all the config servers.
mongos --configdb --upgrade You can include the --logpath option to output the log messages to a file instead of the standard output. Also include any other options required to start mongos instances in your cluster, such as --sslOnNormalPorts or --sslPEMKeyFile.
The mongos will exit upon completion of the --upgrade process.
The upgrade will prevent any chunk moves or splits from occurring during the upgrade process. If the data files have many sharded collections or if failed processes hold stale locks, acquiring the locks for all collections can take seconds or minutes. Watch the log for progress updates.
Good with instructions ...
3. Ensure mongos --upgrade process completes successfully. The mongos will exit upon completion of the meta data upgrade process. If successful, the process will log the following messages:
upgrade of config server to v5 successful Config database is at version v5 After a successful upgrade, restart the mongos instance. If mongos fails to start, check the log for more information.
If the mongos instance loses its connection to the config servers during the upgrade or if the upgrade is otherwise unsuccessful, you may always safely retry the upgrade.
Good with instructions ...
4. Upgrade the remaining mongos instances to v2.6. Upgrade and restart without the --upgrade option the other mongos instances in the sharded cluster. After upgrading all the mongos, see Complete Sharded Cluster Upgrade for information on upgrading the other cluster components.
Upgrade and restart without the --upgrade option so there is no need to use --upgrade option. I am not not sure why step is called Upgrade and restart, it should be simple restart. Am I missing any thing here ? When we upgrade our first config db with upgrade option, other config db should automatically sync with first one, the only thing which I need to do is to start with 2.6 binary. Is my understanding correct ?