MongoDB sharding+replicate set搭建

1.分片集服务器分配
共三台机器:
192.168.32.1
192.168.32.2
192.168.32.3
架构:三分片,每个分片为一主一从一arbiter复制集,各分片复制集的主节点分散在三台服务器上。

192.168.32.1:27018 mongos
192.168.32.1:27019 configsvr
192.168.32.2:27019 configsvr
192.168.32.3:27019 configsvr
shardsvr1:
192.168.32.1:27020 主
192.168.32.2:27020 从
192.168.32.3:27020 arbiter
shardsvr2:
192.168.32.1:27021 主
192.168.32.2:27021 从
192.168.32.3:27021 arbiter
shardsvr3:
192.168.32.1:27022 主
192.168.32.2:27022 从
192.168.32.3:27022 arbiter

各服务器创建相关目录:
mkdir -p /sam/soft --MongoDB软件目录
mkdir -p /sam/conf/mongodb --存放配置文件
mkdir -p /sam/logs/mongodb --存放日志文件
mkdir -p /sam/run/mongodb --存放pid文件

各服务器分别安装MongoDB,如
ssh 192.168.33.1
su - sam
cd /sam/soft
tar -zxf mongodb-linux-x86_64-3.2.22.tgz
ln -s /sam/soft/mongodb-linux-x86_64-3.2.22 /sam/soft/mongodb32

2.分片复制集部署
#复制集shard1
#各节点编辑配置文件
vi /sam/conf/mongodb/mongod27020.cnf
dbpath = /sam/dbdat/mongod_27020
port = 27020
logpath = /sam/logs/mongodb/mongod27020.log
logappend = true
pidfilepath = /sam/run/mongodb/mongod27020.pid
directoryperdb = true
fork = true
repairpath = /sam/dbdat/mongod_27020
syncdelay = 60
maxConns = 10240
profile = 1
slowms = 100
nohttpinterface = true
oplogSize = 10240
replSet = shard1
shardsvr = true
journal = true
journalCommitInterval = 100
storageEngine=wiredTiger
wiredTigerCacheSizeGB=64
wiredTigerCollectionBlockCompressor=zlib
wiredTigerDirectoryForIndexes=true
wiredTigerJournalCompressor=snappy
wiredTigerIndexPrefixCompression=true
#各节点创建数据目录
mkdir -p /sam/dbdat/mongod_27020
#各节点启动实例
numactl --interleave=all /sam/soft/mongodb32/bin/mongod --config /sam/conf/mongodb/mongod27020.cnf
#复制集配置,启动,192.168.32.1为主节点
ssh 192.168.32.1
/sam/soft/mongodb32/bin/mongo --port 27020
rsconf = {
_id: “shard1”,
members: [
{_id: 0,host: “192.168.32.1:27020”,priority:20},
{_id: 1,host: “192.168.32.2:27020”,priority:10},
{_id: 2,host: “192.168.32.3:27020”,priority:0,arbiterOnly:true}
]
}
#复制集初始化
rs.initiate(rsconf)
#检查复制集信息
rs.conf()
rs.status()

#复制集shard2
#各节点编辑配置文件
vi /sam/conf/mongodb/mongod27021.cnf
dbpath = /sam/dbdat/mongod_27021
port = 27021
logpath = /sam/logs/mongodb/mongod27021.log
logappend = true
pidfilepath = /sam/run/mongodb/mongod27021.pid
directoryperdb = true
fork = true
repairpath = /sam/dbdat/mongod_27021
syncdelay = 60
maxConns = 10240
profile = 1
slowms = 100
nohttpinterface = true
oplogSize = 10240
replSet = shard2
shardsvr = true
journal = true
journalCommitInterval = 100
storageEngine=wiredTiger
wiredTigerCacheSizeGB=64
wiredTigerCollectionBlockCompressor=zlib
wiredTigerDirectoryForIndexes=true
wiredTigerJournalCompressor=snappy
wiredTigerIndexPrefixCompression=true
#各节点创建数据目录
mkdir -p /sam/dbdat/mongod_27021
#各节点启动实例
numactl --interleave=all /sam/soft/mongodb32/bin/mongod --config /sam/conf/mongodb/mongod27021.cnf
#复制集配置,启动,192.168.32.2为主节点
ssh 192.168.32.2
/sam/soft/mongodb32/bin/mongo --port 27021
rsconf = {
_id: “shard2”,
members: [
{_id: 0,host: “192.168.32.1:27021”,priority:10},
{_id: 1,host: “192.168.32.2:27021”,priority:20},
{_id: 2,host: “192.168.32.3:27021”,priority:0,arbiterOnly:true}
]
}
#复制集初始化
rs.initiate(rsconf)
#检查复制集信息
rs.conf()
rs.status()

#复制集shard3
#各节点编辑配置文件
vi /sam/conf/mongodb/mongod27022.cnf
dbpath = /sam/dbdat/mongod_27022
port = 27022
logpath = /sam/logs/mongodb/mongod27022.log
logappend = true
pidfilepath = /sam/run/mongodb/mongod27022.pid
directoryperdb = true
fork = true
repairpath = /sam/dbdat/mongod_27022
syncdelay = 60
maxConns = 10240
profile = 1
slowms = 100
nohttpinterface = true
oplogSize = 10240
replSet = shard3
shardsvr = true
journal = true
journalCommitInterval = 100
storageEngine=wiredTiger
wiredTigerCacheSizeGB=64
wiredTigerCollectionBlockCompressor=zlib
wiredTigerDirectoryForIndexes=true
wiredTigerJournalCompressor=snappy
wiredTigerIndexPrefixCompression=true
#各节点创建数据目录
mkdir -p /sam/dbdat/mongod_27022
#各节点启动实例
numactl --interleave=all /sam/soft/mongodb32/bin/mongod --config /sam/conf/mongodb/mongod27022.cnf
#复制集配置,启动,192.168.32.3为主节点
ssh 192.168.32.3
/sam/soft/mongodb32/bin/mongo --port 27022
rsconf = {
_id: “shard3”,
members: [
{_id: 0,host: “192.168.32.1:27022”,priority:0,arbiterOnly:true},
{_id: 1,host: “192.168.32.2:27022”,priority:10},
{_id: 2,host: “192.168.32.3:27022”,priority:20}
]
}
#复制集初始化
rs.initiate(rsconf)
#检查复制集信息
rs.conf()
rs.status()

3.各服务器分别配置configsvr
#编辑配置文件
vi /sam/conf/mongodb/mongod27019.cnf
dbpath = /sam/dbdat/mongod_27019
port = 27019
logpath = /sam/logs/mongodb/mongod27019.log
logappend = true
pidfilepath = /sam/run/mongodb/mongod27019.pid
directoryperdb = true
fork = true
repairpath = /sam/dbdat/mongod_27019
syncdelay = 60
maxConns = 10240
profile = 1
slowms = 100
nohttpinterface = true
oplogSize = 10240
configsvr = true
journal = true
journalCommitInterval = 100
storageEngine=wiredTiger
wiredTigerCacheSizeGB=64
wiredTigerCollectionBlockCompressor=zlib
wiredTigerDirectoryForIndexes=true
wiredTigerJournalCompressor=snappy
wiredTigerIndexPrefixCompression=true
#创建数据目录
mkdir -p /sam/dbdat/mongod_27019
#启动实例
numactl --interleave=all /sam/soft/mongodb32/bin/mongod --config /sam/conf/mongodb/mongod27019.cnf

4.配置mongos
ssh 192.168.32.1
#编辑配置文件
vi /sam/conf/mongodb/mongod27018.cnf
port=27018
logpath=/sam/logs/mongodb/mongod27018.log
fork=true
configdb=192.168.32.1:27019,192.168.32.2:27019,192.168.32.3:27019
chunkSize=200
maxConns=5000
#启动实例
/sam/soft/mongodb32/bin/mongos --config /sam/conf/mongodb/mongod27018.cnf

5.登陆mongos,初始化分片集
ssh 192.168.32.1
/sam/soft/mongodb32/bin/mongo --port 27018
use admin
#添加分片
db.runCommand( { addshard:“shard1/192.168.32.1:27020,192.168.32.2:27020,192.168.32.3:27020”,name:“shardsvr1”});
db.runCommand( { addshard:“shard2/192.168.32.1:27021,192.168.32.2:27021,192.168.32.3:27021”,name:“shardsvr2”});
db.runCommand( { addshard:“shard3/192.168.32.1:27022,192.168.32.2:27022,192.168.32.3:27022”,name:“shardsvr3”});
#检查分片集情况
db.runCommand({listshards:1})
printShardingStatus()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值