Created
September 9, 2020 09:51
-
-
Save H-Max/16f101afd0124a1d96ec75a629823adc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pkill -2 mongos && sudo pkill -2 mongod |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Remember to change password in script | |
shards=$1 | |
wkdir=/data | |
logpath=/data/log | |
mongopath="" # /apps/mongodb/bin/current/ | |
mongos_port=32001 | |
config_port=32002 | |
mongod_port=32100 | |
memtotal=$(grep MemTotal /proc/meminfo | awk '{printf "%.f",$2 / 1024 / 1024}') | |
cache_size=$(((memtotal / shards) / 2)) # GB, Per instance | |
create_user='db.createUser({user: "clusterAdmin",pwd:"PASSWORD_IS_HERE",roles:[{role:"clusterAdmin",db:"admin"},{role:"userAdminAnyDatabase",db:"admin"}]});' | |
# Création du dossier du server de config (si besoin) | |
mkdir -p ${wkdir}/config | |
mkdir -p ${logpath}/config | |
# Démarrage du ConfigServer | |
${mongopath}mongod -f /data/mongo-common.conf --configsvr --replSet configReplSet \ | |
--bind_ip config.edouard.m1by1.local --port ${config_port} --dbpath ${wkdir}/config --directoryperdb \ | |
--nounixsocket --logpath ${logpath}/config-server.log --oplogSize 16 --wiredTigerCacheSizeGB 0.25 --fork --quiet | |
# Init du replicaSet | |
${mongopath}mongo --quiet --port ${config_port} admin > /dev/null <<EOF | |
rs.initiate(); | |
while (db.isMaster()['ismaster'] !== true){sleep(200);} | |
${create_user} | |
EOF | |
# Démarrage du MongoS | |
${mongopath}mongos -f /data/mongo-common.conf --configdb configReplSet/config.edouard.m1by1.local:${config_port} --nounixsocket --logpath ${logpath}/mongos.log \ | |
--bind_ip_all --port ${mongos_port} --setParameter diagnosticDataCollectionEnabled=false --fork --quiet | |
# Lancement de chaque shard | |
for (( s=1; s<=$shards; s++ )) | |
do | |
# Création des dossiers pour les shards | |
sn=$(printf "%02d" ${s}) | |
dd=${wkdir}/shards/${sn} | |
prt=$((${mongod_port}+${s})) | |
mkdir -p ${dd} | |
host=mongod-${sn}.edouard.m1by1.local | |
# Démarrage du daemon mongod | |
${mongopath}mongod -f /data/mongo-common.conf --shardsvr --replSet shard-local-rs${sn} --bind_ip ${host} \ | |
--port ${prt} --dbpath ${dd} --nounixsocket --logpath ${logpath}/mongod-${sn}.log --oplogSize 128 --wiredTigerCacheSizeGB ${cache_size} --fork | |
# Init du replicaset | |
${mongopath}mongo --host ${host} --port ${prt} admin > /dev/null <<EOF | |
rs.initiate(); | |
while (db.isMaster()['ismaster'] !== true){sleep(200);} | |
${create_user} | |
EOF | |
# Ajout du shard au cluster | |
${mongopath}mongo --host mongos.edouard.m1by1.local --port ${mongos_port} --username clusterAdmin \ | |
--password PASSWORD_IS_HERE --authenticationDatabase=admin admin > /dev/null <<EOF | |
sh.addShard("shard-local-rs${sn}/${host}:${prt}"); | |
${create_user} | |
EOF | |
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pkill -2 mongos && sudo pkill -2 mongod | |
rm -rf /data/{config,log,shards} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment