...
This involves changes to distributed Mongodb and Nats configuration and opCommon.json that needs to be updated accordingly.
ProcudureProcedure:
All vms: (Main Pri, Sec Pri, Pollers, Mirrors)
| Code Block | ||||
|---|---|---|---|---|
| ||||
sudo systemctl stop ophad |
Main Primary: Delete all streams
| Code Block | ||||
|---|---|---|---|---|
| ||||
nats stream delete --user omkadmin --password op42opha42 |
If jq is installed on Main Primary, this below snippet can be used to automate deletion of all nats streams:
| Code Block | ||||
|---|---|---|---|---|
| ||||
for stream_name in $(nats stream list --user omkadmin --password op42opha42 --json | jq -r '.[]');
do nats stream rm --force --user omkadmin --password op42opha42 "$stream_name";
done |
Verify to check if all streams have been deleted
| Code Block | ||||
|---|---|---|---|---|
| ||||
nats stream info --user omkadmin --password op42opha42
nats: error: could not pick a Stream to operate on: no Streams are defined |
Skip the optional step to cleanup the Nats storage /opt/data/nats if not needed.
Main Pri, Sec Pri and Poller (all 3 servers where nats has been running)
Nats changes in Main Primary and Secondary Primary in /etc/nats-server.conf
In the cluster section, replace old Arbiter DNS/IP address with new Arbiter DNS/IP address of"nats://opha-dev5.opmantek.net:6222""nats://opha-dev6.opmantek.net:6222"Code Block cluster { name: "C1" host: "opha-dev4.opmantek.net" listen: "0.0.0.0:6222" routes: [ "nats://opha-dev5.opmantek.net:6222" "nats://opha-dev6.opmantek.net:6222" "nats://opha-dev7.opmantek.net:6222" ] }Nats changes in New Arbiter Poller
- Replace server name with DNS/IP address of the new Arbiter.
- Comment out cluster section and edit the routes with the DNS/IP address of Main Primary and Secondary PrimaryCode Block server_name: "opha-dev6.opmantek.net" <Last section> cluster { name: "C1" host: "opha-dev4.opmantek.net" listen: "0.0.0.0:6222" routes: [ "nats://opha-dev5.opmantek.net:6222" "nats://opha-dev7.opmantek.net:6222" ] }Disable the old Arbiter Nats config
Code Block sudo systemctl stop nats-server
...
clear /opt/nats/storage/jetstream
| Code Block |
|---|
rm -rf /opt/nats/storage |
Main Pri, Sec Pri and Poller (all 3 servers where nats has been running)
...
.service sudo systemctl
...
disable nats-server.service
Mongodb arbiter config changes done on the mongosh
Main Primary : mongosh (https://www.mongodb.com/docs/manual/tutorial/replace-replica-set-member/ )Code Block mongosh --username opUserRW --password op42flow42 admin --port 27017 rs1 [direct: primary] admin> cfg = rs.conf() rs1 [direct: primary] admin> cfg.members[2].host = "opha-dev6.opmantek.net:27018" rs1 [direct: primary] admin> rs.reconfig(cfg) rs1 [direct: primary] admin> rs.conf()Verify the mongodb cluster config
Code Block mongosh --username opUserRW --password op42flow42 admin --port 27017 rs1 [direct: primary] admin> rs.conf()Code Block members: [ { _id: 0, host: 'opha-dev4.opmantek.net:27017', priority: 2, }, { _id: 1, host: 'opha-dev7.opmantek.net:27017', priority: 1, }, { _id: 2, host: 'opha-dev6.opmantek.net:27018', priority: 0, } ],All vms: (Main Pri, Sec Pri, Pollers, Mirrors)
Edit /usr/local/omk/conf/opCommon.json
| Code Block | ||||
|---|---|---|---|---|
| ||||
omkadmin@lab-ophamb-mp01:/usr/local/omk/conf$ grep -a4 nats_cluster /usr/local/omk/conf/opCommon.json
"db_use_v26_features" : 1,
"redis_port" : 6379,
"redis_server" : "localhost",
"db_port" : "27017",
"nats_cluster" : [
“Main Primary ,
“Sec Primary”,
“New Arbiter Poller”
], |
All vms: (Main Pri, Sec Pri, Pollers, Mirrors)
| Code Block | ||||
|---|---|---|---|---|
| ||||
sudo systemctl stop ophad |
Main Primary: Delete all streams
| Code Block | ||||
|---|---|---|---|---|
| ||||
nats stream delete --user omkadmin --password op42opha42 |
If jq is installed on Main Primary, this below snippet can be used to automate deletion of all nats streams:
| Code Block | ||||
|---|---|---|---|---|
| ||||
for stream_name in $(nats stream list --user omkadmin --password op42opha42 --json | jq -r '.[]'); do nats stream rm --force --user omkadmin --password op42opha42 "$stream_name"; done |
Verify to check if all streams have been deleted
| Code Block | ||||
|---|---|---|---|---|
| ||||
nats stream info --user omkadmin --password op42opha42
nats: error: could not pick a Stream to operate on: no Streams are defined |
Skip the optional step to cleanup the Nats storage /opt/data/nats if not needed.
Main Pri, Sec Pri and Poller (all 3 servers where nats has been running)Code Block sudo systemctl stop nats-serverclear /opt/nats/storage/jetstream
Code Block sudo rm -rf /opt/nats/storageMain Pri, Sec Pri and Poller (all 3 servers where nats has been running)
Code Block sudo systemctl start nats-server
Restart the services for the changes made to opCommon.json to get reflected.
...