系统:CentOs7.6
安装包:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz
安装规划
三台服务器
of-ad-dev-001
of-ad-dev-002
of-ad-dev-003
服务器1 | 服务器2 | 服务器3 |
---|---|---|
mongos | mongos | mongos |
config server | config server | config server |
shard server1 | shard server1 副本 | shard server1 副本 |
shard server2 | shard server2 副本 | shard server2 副本 |
shard server3 | shard server3 副本 | shard server3 副本 |
端口分配
mongos:20000
config:20001
shard1:27001
shard2:27002
shard3:27003
创建相关目录
cd /home/edison/mongodb
mkdir -p mongos/log
mkdir -p config/data
mkdir -p config/log
mkdir -p shard1/data
mkdir -p shard1/log
mkdir -p shard2/data
mkdir -p shard2/log
mkdir -p shard3/data
mkdir -p shard3/log
配置环境变量
vim /etc/profile
##
export MONGODB_HOME=/home/edison/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
##
source /etc/profile
输入版本号,则表示配置成功
mongod -v
vi $MONGODB_HOME/conf/config.conf
## content
systemLog:
destination: file
logAppend: true
path: /home/edison/mongodb/config/log/config.log
# Where and how to store data.
storage:
dbPath: /home/edison/mongodb/config/data
journal:
enabled: true
# how the process runs
processManagement:
fork: true
pidFilePath: /home/edison/mongodb/config/log/configsrv.pid
# network interfaces
net:
port: 20001
bindIp: of-ad-dev-001
#operationProfiling:
replication:
replSetName: config
sharding:
clusterRole: configsvr
分发包
scp -r ~/mongodb edison@of-ad-dev-002:~/
scp -r ~/mongodb edison@of-ad-dev-003:~/
注意修改配置文件中的服务器地址
启动config server(三台机器都得启动)
mongod --config $MONGODB_HOME/conf/config.conf
登陆任意一台,初始化配置副本集
# 连接
mongo of-ad-dev-001:20001
# config变量
config = {
_id : "config",
members : [
{_id : 0, host : "of-ad-dev-001:20001" },
{_id : 1, host : "of-ad-dev-002:20001" },
{_id : 2, host : "of-ad-dev-003:20001" }
]
}
# 初始化副本集
rs.initiate(config)
# 查看分区状态
rs.status()
vi $MONGODB_HOME/conf/shard1.conf
#配置文件内容
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /home/edison/mongodb/shard1/log/shard1.log
# Where and how to store data.
storage:
dbPath: /home/edison/mongodb/shard1/data
journal:
enabled: true
wiredTiger:
engineConfig:
cacheSizeGB: 20
# how the process runs
processManagement:
fork: true
pidFilePath: /home/edison/mongodb/shard1/log/shard1.pid
# network interfaces
net:
port: 27001
bindIp: of-ad-dev-001
#operationProfiling:
replication:
replSetName: shard1
sharding:
clusterRole: shardsvr
启动shard1 server(三台机器都得启动)
mongod --config $MONGODB_HOME/conf/shard1.conf
登陆任意一台服务器,初始化副本集
# 连接
mongo of-ad-dev-001:27001
# config变量
config = {
_id : "shard1",
members : [
{_id : 0, host : "of-ad-dev-001:27001" },
{_id : 1, host : "of-ad-dev-002:27001" },
{_id : 2, host : "of-ad-dev-003:27001" }
]
}
# 初始化副本集
rs.initiate(config)
# 查看分区状态
rs.status()
和第一个类似,注意修改端口和文件的位置即可
vi $MONGODB_HOME/conf/mongos.conf
systemLog:
destination: file
logAppend: true
path: /home/edison/mongodb/mongos/log/mongos.log
processManagement:
fork: true
# network interfaces
net:
port: 20000
bindIp: of-ad-dev-001
#监听的配置服务器,只能有1个或者3个 config为配置服务器的副本集名字
sharding:
configDB: config/of-ad-dev-001:20001,of-ad-dev-002:20001,of-ad-dev-003:20001
需要注意的是configDB中的config和config server集群的名字一样
分发到另外2台机器,注意修改ip地址
scp -r ~/mongodb/conf/mongos.conf edison@of-ad-dev-002:~/mongodb/conf/mongos.conf
scp -r ~/mongodb/conf/mongos.conf edison@of-ad-dev-003:~/mongodb/conf/mongos.conf
启动(三台机器都得启动)
mongos -f $MONGODB_HOME/conf/mongos.conf
登陆任意一台mongos
mongo of-ad-dev-001:20000
#使用admin数据库
use admin
#串联路由服务器与分配副本集
sh.addShard("shard1/of-ad-dev-001:27001,of-ad-dev-002:27001,of-ad-dev-003:27001")
sh.addShard("shard2/of-ad-dev-001:27002,of-ad-dev-002:27002,of-ad-dev-003:27002")
sh.addShard("shard3/of-ad-dev-001:27003,of-ad-dev-002:27003,of-ad-dev-003:27003")
#查看集群状态
sh.status()
假设对music数据库中的artists集合按照name键进行分片,首先对music数据库启用分片
db.runCommand( { enablesharding :"mbase"});
对数据库启用分片后,就可以使用shardCollection()命令对集合分片了
db.runCommand( { shardcollection : "mbase.weibo_status",key : {date: 1} } );
user mbase
db.weibo_status.save({date:2017});
db.weibo_status.save({date:2018});
db.weibo_status.save({date:2019});
db.weibo_status.stats();
mongodb分片集群开启安全策略
https://blog.csdn.net/zzti_erlie/article/details/90765447
[1]www.ityouknow.com/mongodb/2017/08/05/mongodb-cluster-setup.html
[2]http://www.ityouknow.com/mongodb/2017/08/16/install-mongodb-cluster.html
好文
[3]https://www.jianshu.com/p/e1855a1d38b7