centos7部署mongodb分片集群

#!/bin/bash

# 解压安装mongodb
mongodb_package="mongodb-linux-x86_64-rhel70-4.0.20.tgz"
mongodb_install_path="/usr/local/mongodb"

tar zxf "${mongodb_package}"
mv "${mongodb_package%.*}" "${mongodb_install_path}"

echo "PATH=$PATH:$mongodb_install_path/bin" > /etc/profile.d/mongodb.sh
source /etc/profile

mkdir -p /data/mongodb/mongos/{log,conf} 
mkdir -p /data/mongodb/mongoconf/{data,log,conf}
mkdir -p /data/mongodb/shard1/{data,log,conf}
mkdir -p /data/mongodb/shard2/{data,log,conf}
mkdir -p /data/mongodb/shard3/{data,log,conf}
touch /data/mongodb/mongos/log/mongos.log
touch /data/mongodb/mongoconf/log/mongoconf.log
touch /data/mongodb/shard1/log/shard1.log
touch /data/mongodb/shard2/log/shard2.log
touch /data/mongodb/shard3/log/shard3.log

cat > /data/mongodb/mongoconf/conf/mongoconf.conf <<EOF
systemLog:
   destination: file
   path: "/data/mongodb/mongoconf/log/mongoconf.log"
   logAppend: true
storage:
   journal:
      enabled: true
   dbPath: "/data/mongodb/mongoconf/data"
processManagement:
   fork: true
net:
   bindIp: 0.0.0.0
   port: 21000
sharding:
   clusterRole: configsvr
replication:
   replSetName: "replconf"
EOF

mongod -f /data/mongodb/mongoconf/conf/mongoconf.conf
# mongod --shutdown --dbpath /data/mongodb/mongoconf/data/
firewall-cmd --zone=public --add-port=21000/tcp --permanent
firewall-cmd --reload

mongo --port 21000
use admin

config = {
	_id:"replconf",
	members:[
		{_id:0,host:"192.168.122.132:21000"},
		{_id:1,host:"192.168.122.133:21000"},
		{_id:2,host:"192.168.122.134:21000"},
	]
}
rs.initiate(config)

cat > /data/mongodb/shard1/conf/shard.conf <<EOF
systemLog:
   destination: file
   path: "/data/mongodb/shard1/log/shard1.log"
   logAppend: true
storage:
   journal:
      enabled: true
   dbPath: "/data/mongodb/shard1/data"
processManagement:
   fork: true
net:
   bindIp: 0.0.0.0
   port: 22001
sharding:
   clusterRole: shardsvr
replication:
   replSetName: "shard1"
EOF

firewall-cmd --zone=public --add-port=22001/tcp --permanent
firewall-cmd --reload

mongod -f /data/mongodb/shard1/conf/shard.conf
mongo --port 22001
use admin

config = {
	_id:"shard1",
	protocolVersion: 1,
	members:[
		{_id:0,host:"192.168.122.132:22001"},
		{_id:1,host:"192.168.122.133:22001",arbiterOnly:true},
		{_id:2,host:"192.168.122.134:22001"},
	]
}
rs.initiate(config)

cat > /data/mongodb/shard2/conf/shard.conf <<EOF
systemLog:
   destination: file
   path: "/data/mongodb/shard2/log/shard2.log"
   logAppend: true
storage:
   journal:
      enabled: true
   dbPath: "/data/mongodb/shard2/data"
processManagement:
   fork: true
net:
   bindIp: 0.0.0.0
   port: 22002
sharding:
   clusterRole: shardsvr
replication:
   replSetName: "shard2"
EOF

firewall-cmd --zone=public --add-port=22002/tcp --permanent
firewall-cmd --reload

mongod -f /data/mongodb/shard2/conf/shard.conf
mongo --port 22002
use admin

config = {
	_id:"shard2",
	protocolVersion: 1,
	members:[
		{_id:0,host:"192.168.122.132:22002"},
		{_id:1,host:"192.168.122.133:22002"},
		{_id:2,host:"192.168.122.134:22002",arbiterOnly:true},
	]
}
rs.initiate(config)

cat > /data/mongodb/shard3/conf/shard.conf <<EOF
systemLog:
   destination: file
   path: "/data/mongodb/shard3/log/shard3.log"
   logAppend: true
storage:
   journal:
      enabled: true
   dbPath: "/data/mongodb/shard3/data"
processManagement:
   fork: true
net:
   bindIp: 0.0.0.0
   port: 22003
sharding:
   clusterRole: shardsvr
replication:
   replSetName: "shard3"
EOF

firewall-cmd --zone=public --add-port=22003/tcp --permanent
firewall-cmd --reload

mongod -f /data/mongodb/shard3/conf/shard.conf
mongo --port 22003
use admin
config = {
	_id:"shard3",
	protocolVersion: 1,
	members:[
		{_id:0,host:"192.168.122.132:22003",arbiterOnly:true},
		{_id:1,host:"192.168.122.133:22003"},
		{_id:2,host:"192.168.122.134:22003"},
	]
}
rs.initiate(config)


cat > /data/mongodb/mongos/conf/mongos.conf <<EOF
systemLog:
   destination: file
   path: "/data/mongodb/mongos/log/mongos.log"
   logAppend: true
processManagement:
   fork: true
net:
   bindIp: 0.0.0.0
   port: 20000
sharding:
   configDB: replconf/192.168.122.132:21000,192.168.122.133:21000,192.168.122.134:21000
EOF

firewall-cmd --zone=public --add-port=20000/tcp --permanent
firewall-cmd --reload

mongos -f /data/mongodb/mongos/conf/mongos.conf
mongo --port 20000

use admin

db.runCommand({addshard:"shard1/192.168.122.132:22001,192.168.122.133:22001,192.168.122.134:22001"})
db.runCommand({addshard:"shard2/192.168.122.132:22002,192.168.122.133:22002,192.168.122.134:22002"})
db.runCommand({addshard:"shard3/192.168.122.132:22003,192.168.122.133:22003,192.168.122.134:22003"})

db.runCommand({enablesharding:"test"})
db.runCommand({shardcollection:"test.collection1",key:{_id:"hashed"}})

use test
for(var i=1;i<=100000;i++) db.collection1.save({_id:i,"test1":"testval1"})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值