MongoDB Enterprise to Community Edition
- Implementation
Overview:
Shards 1(rs_0)
tommy1:27019
- Primary
tommy2:27019
- Secondary
tommy3:27019
- Secondary
Shards 2(rs_1)
tommy4:27019
- Primary
tommy5:27019
- Secondary
tommy6:27019
- Secondary
Shards 3(rs_3)
tommy7:27019
- Primary
tommy8:27019
- Secondary
tommy9:27019
- Secondary
ConfigDB:
tommy10:27018
tommy11:27018
tommy12:27018
Mongos:
tommy13:27017
Version : 3.0.5
Cluster size : 56.3GB
Implementation Plan:
1) Login as mongod user
Sudo -u
mongod -i
Password
Note: just for reference
Existing
path in Prod server bin - /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-3.0.5-ent/bin/
Existing
path in Prod server config - /data/automation-mongod.conf
Generic Path
for bin - /usr/mongodb_3.0.5/bin/
Generic Path
for config - /usr/mongodb_3.0.5/conf/
2) Create necessary directories in all the
servers
# mkdir -p /usr/mongodb_3.0.5/bin/
# chmod 775 /usr/mongodb_3.0.5/bin/
# mkdir /usr/mongodb_3.0.5/conf/
# chmod 775 /usr/mongodb_3.0.5/conf/
3) Copy the New Binaries to all the servers
in bin folder from - tommy13
Path - /usr/mongodb_3.0.5/bin/
Log in to tommy13 – run the below command in all
the servers
# scp /tmp/mongodb-linux-x86_64-3.0.5.tgz
[user account]@[hostname]:/tmp/
Then log in to each server, run the commands – ( have to run this in
all servers)
# cd /tmp
# tar -zxvf mongodb-linux-x86_64-3.0.5.tgz
# cp -R /tmp/mongodb-linux-x86_64-3.0.5/*
/usr/mongodb_3.0.5/
4) Copy the existing configuration files to
the new path
Path - /usr/mongodb_3.0.5/conf/
For tommy13 - mongos
cp /var/lib/mongodb-mms-automation/workspace/mongos-cluster_mongos_0.conf
/usr/mongodb_3.0.5/conf/
For tommy10 - config
cp /data/cluster_config_10/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy11 - config
cp /data/cluster_config_11/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy12 - config
cp /data/cluster_config_12/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy1 - primary
cp /data/cluster_rs_0_2/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy2 - secondary
cp /data/cluster_rs_0_1/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy3 - secondary
cp /data/cluster_rs_0_3/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy4 - primary
cp /data/cluster_rs_0_4/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy5 - secondary
cp /data/cluster_rs_1_4/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy6 - seconday
cp /data/cluster_rs_1_5/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy7 - primary
cp /data/cluster_rs_2_8/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy8 - secondary
cp /data/cluster_rs_2_7/automation-mongod.conf /usr/mongodb_3.0.5/conf/
For tommy9 secondary
cp /data/cluster_rs_2_9/automation-mongod.conf /usr/mongodb_3.0.5/conf/
5) Rename the config file names
tommy13 - mongos
# mv /usr/mongodb_3.0.5/conf/mongos-cluster_mongos_0.conf
/usr/mongodb_3.0.5/conf/mongos.conf
tommy1, tommy2, tommy3, tommy4,
tommy5, tommy6, tommy7, tommy8,
tommy9 - mongod
# mv /usr/mongodb_3.0.5/conf/automation-mongod.conf
/usr/mongodb_3.0.5/conf/mongod.conf
tommy10, tommy11, tommy12 - config
# mv /usr/mongodb_3.0.5/conf/automation-mongod.conf /usr/mongodb_3.0.5/conf/mongod_config.conf
6) Open all config files in all servers and
delete the first 2 lines which is hashed (#)
tommy13 - mongos
# vi /usr/mongodb_3.0.5/conf/mongos.conf
tommy1, tommy2, tommy3, tommy4,
tommy5, tommy6, tommy7, tommy8,
tommy9 - mongod
# vi /usr/mongodb_3.0.5/conf/mongod.conf
tommy10, tommy11, tommy12 - config
# vi /usr/mongodb_3.0.5/conf/mongod_config.conf
6) Disable the balancer
> login
to tommy13 server
> connect
to mongos
> mongo
admin --port 27017
# mongos>
sh.getBalancerState()
true
# mongos>
sh.stopBalancer()
# mongos>
sh.getBalancerState()
false
7) Downgrade secondary members of the
replica set in each shard 1
1st secondary
login to tommy2 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
2nd secondary
login to tommy3 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
8) Step down the primary in shard 1.
login to tommy1 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to mongo
# mongo
admin --port 27019
Step down
the primary
#
rs.stepDown()
when the
server become secondary
# use admin
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /var/lib/mongodb/mongodb_3.0.5/bin/mongod
-f /var/lib/mongodb/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
9) Downgrade secondary members of the
replica set in each shard 2
1st secondary
login to tommy5 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
2nd secondary
login to tommy6 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
10) Step down the primary in shard 2.
login to tommy4 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
Step down
the primary
#
rs.stepDown()
when the
server become secondary
# use admin
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /var/lib/mongodb/mongodb_3.0.5/bin/mongod
-f /var/lib/mongodb/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
11) Downgrade secondary members of the
replica set in each shard 3
1st secondary
login to tommy8 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
2nd secondary
login to tommy9 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
12) Step down the primary in shard 3.
login to tommy7 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27019
Step down
the primary
#
rs.stepDown()
when the
server become secondary
# use admin
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /var/lib/mongodb/mongodb_3.0.5/bin/mongod
-f /var/lib/mongodb/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
13) Downgrade the SCCC config servers in
reverse order
> Reverse
order based on the configDB option in mongos config file
configDB: tommy10:27018,
tommy11:27018, tommy12:27018
>
Downgrade Config3, followed by config2 and then config1 so
>
Downgrade tommy12, followed by tommy11 and then tommy10
tommy12
login to tommy12 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27018
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod_config.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
tommy11
login to tommy11 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27018
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
tommy10
login to tommy10 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27018
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongod
-f /usr/mongodb_3.0.5/conf/mongod.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
14) Downgrade the mongos instances.
login to tommy13 server
check the
process
# ps aux |
grep mongo
Remove
MongoDB automation agent
# sudo rpm
-e mongodb-mms-automation-agent-manager
connect to
mongo
# mongo
admin --port 27017
#
db.shutdownServer()
start the
server with the new binaries and new config file
# /usr/mongodb_3.0.5/bin/mongos
-f /usr/mongodb_3.0.5/conf/mongos.conf
connect to
mongo and wait for the member to recover to SECONDARY state before downgrading
the next secondary - to check
#
rs.status()
15) Re-enable the balancer.
- Once the
downgrade of sharded cluster components is complete, re-enable the balancer.
- login to tommy13
server
- connect to
mongo
# mongo
--port 27017
# mongos>
sh.getBalancerState()
false
# mongos>
sh.startBalancer()
# mongos>
sh.getBalancerState()
true
Note: This
implementation is done before the migration of Config Server from SCCC to ReplicaSet