脚本进行安装配置mongodb复制集和分片
1、192.168.100.100上传软件和编写安装配置脚本:
cd /var/ftp/
vi mongo.sh
#!/bin/bash
#####1.安装mongodb
mgv="mongodb-linux-x86_64-rhel70-3.6.3"
wget ftp://192.168.100.100/$mgv.tgz -P /root/
tar xf /root/$mgv.tgz -C /root
mv /root/$mgv /usr/local/mongodb
echo "export PATH=/usr/local/mongodb/bin/:\$PATH" >>/etc/profile
source /etc/profile
ulimit -n 25000
ulimit -u 25000
echo "vm.zone_reclaim_mode=0" >>/etc/sysctl.conf
sysctl -p
for i in enabled defrag;do
echo never >/sys/kernel/mm/transparent_hugepage/$i
done
cd /usr/local/mongodb
mkdir mongodb1 mongodb2 mongodb3 logs
touch logs/mongodb{1..3}.log
chmod 777 logs/mongodb*
##########2.配置mongodb
IPA=$(ifconfig eth0 |awk -F '[ :]+' 'NR==2{print $3}')
cat <<END >>/usr/local/mongodb/bin/mongodb1.conf
bind_ip=$IPA
port=27017
dbpath=/usr/local/mongodb/mongodb1/
logpath=/usr/local/mongodb/logs/mongodb1.log
logappend=true
fork=true
maxConns=5000
replSet=configs
#replication name
configsvr=true
END
cat <<END >>/usr/local/mongodb/bin/mongodb2.conf
bind_ip=$IPA
port=27018
dbpath=/usr/local/mongodb/mongodb2/
logpath=/usr/local/mongodb/logs/mongodb2.log
logappend=true
fork=true
maxConns=5000
replSet=configs
configsvr=true
END
cat <<END >>/usr/local/mongodb/bin/mongodb3.conf
bind_ip=$IPA
port=27019
dbpath=/usr/local/mongodb/mongodb3/
logpath=/usr/local/mongodb/logs/mongodb3.log
logappend=true
fork=true
maxConns=5000
replSet=configs
configsvr=true
END
#########3.设置分片的mongodb实例配置文件#########################
#获取shard的名称和IP地址
RLS=$(hostname |awk -F . '{print $1}')
IPA=$(ifconfig eth0 |awk -F '[ :]+' 'NR==2{print $3}')
#修改shard1和shard2的mongodb{1..3}的配置文件中复制集的名称和启用shard分片配置项
if [ $IPA == "192.168.100.102" ] || [ $IPA == "192.168.100.103" ];then
sed -i "/replSet/s/configs/$RLS/g" /usr/local/mongodb/bin/mongodb{1..3}.conf
#修改shard1和shard2的shard配置,启用shard分片功能
sed -i 's/configsvr/shardsvr/g' /usr/local/mongodb/bin/mongodb{1..3}.conf
fi
###############4.mongodb实例服务管理
cat <<END >>/etc/init.d/mongodb
#!/bin/bash
INSTANCE=\$1
ACTION=\$2
case "\$ACTION" in
'start')
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/"\$INSTANCE".conf;;
'stop')
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/"\$INSTANCE".conf --shutdown;;
'restart')
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/"\$INSTANCE".conf --shutdown
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/"\$INSTANCE".conf;;
esac
END
chmod +x /etc/init.d/mongodb
for i in 1 2 3;do
/etc/init.d/mongodb mongodb$i start
done
#设置mongodb开机启动实例
echo "for i in 1 2 3;do /etc/init.d/mongodb \$i start;done" >>/etc/rc.local
chmod +x /etc/rc.local
netstat -utpln |grep mon
#########6.配置复制集########
if [ $IPA == "192.168.100.102" ] || [ $IPA == "192.168.100.103" ];then
mongo --host $IPA --port 27017 <<EOF
cfg={"_id":"$RLS","members":[{"_id":0,"host":"${IPA}:27017"},{"_id":1,"host":"${IPA}:27018"},{"_id":2,"host":"${IPA}:27019"}]};
rs.initiate(cfg);
rs.status();
show dbs;
EOF
else
mongo --host $IPA --port 27017 <<EOF
cfg={"_id":"configs","members":[{"_id":0,"host":"${IPA}:27017"},{"_id":1,"host":"${IPA}:27018"},{"_id":2,"host":"${IPA}:27019"}]};
rs.initiate(cfg);
rs.status();
show dbs;
EOF
fi
#############5.配置各节点的mongos(路由入口服务)#############
#编写mongos配置文件
cat <<END >>/usr/local/mongodb/bin/mongos.conf
bind_ip=$IPA
port=27025
logpath=/usr/local/mongodb/logs/mongos.log
fork=true
maxConns=5000
configdb=configs/192.168.100.101:27017,192.168.100.101:27018,192.168.100.101:27019
END
#启动mongos服务
touch /usr/local/mongodb/logs/mongos.log
chmod 777 /usr/local/mongodb/logs/mongos.log
/usr/local/mongodb/bin/mongos -f /usr/local/mongodb/bin/mongos.conf
netstat -utlpn |grep mon
#####7.设置mongos进程分片
mongo --port 27025 --host 192.168.100.101 <<EOF
use admin;
sh.addShard("shard1/192.168.100.102:27017,192.168.100.102:27018,192.168.100.102:27019");
sh.addShard("shard2/192.168.100.103:27017,192.168.100.103:27018,192.168.100.103:27019");
sh.status();
EOF
:wq
[root@ftp ftp]#
[root@ftp ftp]# ls mongodb-linux-x86_64-rhel70-3.6.3.tgz ##上传mongodb安装包
mongodb-linux-x86_64-rhel70-3.6.3.tgz
2、在192.168.100.101-103:
使用xshell的全部会话框执行如下命令:
wget -P /root ftp://192.168.100.100/mongos.sh
sh -x /root/mongos.sh
3、验证:
IPA=$(ifconfig eth0 |awk -F '[ :]+' 'NR==2{print $3}')
mongo --host $IPA --port 27017 <<EOF
rs.status()
EOF ##验证复制集
mongo --host $IPA --port 27025 <<EOF
sh.status()
EOF ##验证分片
netstat -utpln |grep mon ##验证监听端口
版权声明:本文为weixin_45154567原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。