I started up a few MongoDB replica sets with the default configuration and added them to Cloud Manager , but since the default replica set name is "rs0", they're hard to tell apart in the UI. Is there a way to change the name of a replica set, preferably without having to drop and re-import all of the data in the cluster?
I've tried using rs.reconfig
( link ) but it doesn't allow you to change the replica set name.
Yes! The process is pretty simple:
mongod
on each servermongod
back up. If you use /etc/mongod.conf
, remove the replication
section. If you don't, omit the --replSet
option to mongod
Flush the local
database where the replication set configuration is cached
use local; db.dropDatabase()
use local; db.dropDatabase()
(Make sure that admin user / root user has dbAdmin
role on local
db) Start all of the nodes again in replicated mode
mongod
on each server/etc/mongod.conf
, add the replication
section back in with the new name and start mongod
. If not, start mongod
with --replSet <new-name>
rs.initiate()
. DO NOT pass any arguments to rs.initiate()
. (It'll fail with an error) Any other config you want to set can be changed using rs.reconfig()
later. rs.initiate()
, for each secondary, run rs.add('[secondary.host.name]')
to add it to the replica set.This doesn't require you to dump and re-import your data, and it can be done with minimal downtime (and a period of degraded performance as the secondaries sync) if you automate it.
Here's an ansible playbook that does the whole thing (assuming you're using /etc/mongod.conf
and managing mongod
via System V/Upstart/things that speak service
.)
You could remove the existing replica set by following below steps and then can start the mongods with new replica set
start all mongods without --replSet
mongod --dbpath data/rs3 --port 27019 --oplogSize 64
Note: - Above command is for windows machine
start mongo for all the respective mongods remove the existing replica set use local
db.system.replset.remove({_id:'OldReplicaSetName'})
start each mongod with the new replica set with --replSet ex - mongod --dbpath data/rs3 --port 27019 --oplogSize 64 --replSet mySet Note: - Above command is for windows machine
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.