主机 | 角色 | 端口 |
---|---|---|
10.252.132.108 | shared config mongos | 27017 27018 27019 27100 20000 |
10.252.132.109 | shared config mongos | 27017 27018 27019 27100 20000 |
10.252.132.120 | shared config mongos | 27017 27018 27019 27100 20000 |
八,mongo集群副本集安装
1、linux 参数优化
yum install numactl
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cat /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cd /usr/local
tar xvf percona-server-mongodb-3.6.17-4.0-centos7-x86_64.tar.gz
ln -s percona-server-mongodb-3.6.17-4.0 mongodb
mkdir -p /ssd1/s/data/mongodb/{config,rs1,rs2,rs3}/data
mkdir -p /ssd1/s/data/mongodb/mongos
mkdir -pv /ssd1/s/data/mongodb/{rs1,rs2,rs3}
mkdir -pv /ssd1/s/data/mongodb/{rs1,rs2,rs3}/data/
mkdir -pv /ssd1/s/data/mongodb/{rs1,rs2,rs3}/confing/
touch /ssd1/s/data/mongodb/{rs1,rs2,rs3}/keyFile
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/rs1/keyFile
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/rs2/keyFile
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/rs3/keyFile
chmod 600 /ssd1/s/data/mongodb/{rs1,rs2,rs3}/keyFile
/ssd1/s/data/mongodb/rs1/confing/rs1.conf
/etc/systemd/system/mongo-rs1.service
2,安装shared
systemctl restart mongo-rs1
启动文件
/etc/systemd/system/mongo-rs1.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
LimitNOFILE=327680
LimitNPROC=163840
User=root
Type=forking
PIDFile=/ssd1/s/data/mongodb/rs1/mongod.pid
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/bin/numactl --interleave=all /usr/local/mongodb/bin/mongod --quiet -f /ssd1/s/data/mongodb/rs1/confing/rs1.conf
Restart=always
RestartSec=30
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
/etc/systemd/system/mongo-rs2.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
LimitNOFILE=327680
LimitNPROC=163840
User=root
Type=forking
PIDFile=/ssd1/s/data/mongodb/rs2/mongod.pid
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/bin/numactl --interleave=all /usr/local/mongodb/bin/mongod --quiet -f /ssd1/s/data/mongodb/rs2/confing/rs2.conf
Restart=always
RestartSec=30
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
/etc/systemd/system/mongo-rs3.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
LimitNOFILE=327680
LimitNPROC=163840
User=root
Type=forking
PIDFile=/ssd1/s/data/mongodb/rs1/mongod.pid
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/bin/numactl --interleave=all /usr/local/mongodb/bin/mongod --quiet -f /ssd1/s/data/mongodb/rs3/confing/rs1.conf
Restart=always
RestartSec=30
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
/ssd1/s/data/mongodb/rs1/confing/rs1.conf
rs1配置文件参考
net.bindIp: 10.252.132.108,127.0.0.1
net.port: 27017
net.maxIncomingConnections: 20000
net.serviceExecutor: adaptive
processManagement.fork: true
processManagement.pidFilePath: /ssd1/s/data/mongodb/rs1/mongod.pid
replication.replSetName: rs1
replication.enableMajorityReadConcern: false
sharding.clusterRole: shardsvr
storage.dbPath: /ssd1/s/data/mongodb/rs1/data/
storage.journal.enabled: true
storage.engine: wiredTiger
storage.wiredTiger.engineConfig.cacheSizeGB: 30
systemLog.logAppend: true
systemLog.path: /ssd1/s/data/mongodb/rs1/mongod.log
systemLog.destination: file
systemLog.logRotate: rename
security.authorization: enabled
security.keyFile: /ssd1/s/data/mongodb/rs1/keyFile
/ssd1/s/data/mongodb/rs2/confing/rs2.conf
rs2配置文件参考
net.bindIp: 10.252.132.108,127.0.0.1
net.port: 27018
net.maxIncomingConnections: 20000
net.serviceExecutor: adaptive
processManagement.fork: true
processManagement.pidFilePath: /ssd1/s/data/mongodb/rs2/mongod.pid
replication.replSetName: rs2
replication.enableMajorityReadConcern: false
sharding.clusterRole: shardsvr
storage.dbPath: /ssd1/s/data/mongodb/rs2/data/
storage.journal.enabled: true
storage.engine: wiredTiger
storage.wiredTiger.engineConfig.cacheSizeGB: 30
systemLog.logAppend: true
systemLog.path: /ssd1/s/data/mongodb/rs2/mongod.log
systemLog.destination: file
systemLog.logRotate: rename
security.authorization: enabled
security.keyFile: /ssd1/s/data/mongodb/rs2/keyFile
/ssd1/s/data/mongodb/rs3/confing/rs3.conf
rs3配置文件参考
net.bindIp: 10.252.132.108,127.0.0.1
net.port: 27019
net.maxIncomingConnections: 20000
net.serviceExecutor: adaptive
processManagement.fork: true
processManagement.pidFilePath: /ssd1/s/data/mongodb/rs3/mongod.pid
replication.replSetName: rs3
replication.enableMajorityReadConcern: false
sharding.clusterRole: shardsvr
storage.dbPath: /ssd1/s/data/mongodb/rs3/data/
storage.journal.enabled: true
storage.engine: wiredTiger
storage.wiredTiger.engineConfig.cacheSizeGB: 30
systemLog.logAppend: true
systemLog.path: /ssd1/s/data/mongodb/rs3/mongod.log
systemLog.destination: file
systemLog.logRotate: rename
security.authorization: enabled
security.keyFile: /ssd1/s/data/mongodb/rs3/keyFile
mkdir -p /ssd1/s/data/mongodb/{config,rs1,rs2,rs3}/data
mkdir -p /ssd1/s/data/mongodb/mongos
mkdir -pv /ssd1/s/data/mongodb/{rs1,rs2,rs3}
mkdir -pv /ssd1/s/data/mongodb/{rs1,rs2,rs3}/data/
mkdir -pv /ssd1/s/data/mongodb/{rs1,rs2,rs3}/confing/
touch /ssd1/s/data/mongodb/{rs1,rs2,rs3}/keyFile
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/rs1/keyFile
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/rs2/keyFile
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/rs3/keyFile
设置副本集
/usr/local/mongodb/bin/mongo --port 27017
config={_id:"rs1",members:[{_id:0,host:"10.252.132.108:27017"},{_id:1,host:"10.252.132.109:27017"},{_id:2,host:"10.252.132.120:27017"}]}
rs.initiate(config)
rs.status()
config={_id:"rs2",members:[{_id:0,host:"10.252.132.108:27018"},{_id:1,host:"10.252.132.109:27018"},{_id:2,host:"10.252.132.120:27018"}]}
rs.initiate(config)
rs.status()
config={_id:"rs3",members:[{_id:0,host:"10.252.132.108:27019"},{_id:1,host:"10.252.132.109:27019"},{_id:2,host:"10.252.132.120:27019"}]}
rs.initiate(config)
rs.status()
权限所有share都设置
#观察副本集是否初始化成功,找到primary节点,创建root帐号
db.createUser({user:'admin',pwd:'root1q2w3e', roles:[ {role:'root', db:'admin'}]}
3,安装config
systemctl restart mongod-config
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/config/keyFile
chmod 600 /ssd1/s/data/mongodb/config/keyFile
配置文件
/ssd1/s/data/mongodb/config/config.conf
net.bindIp: 10.252.132.108,127.0.0.1
net.port: 27100
net.maxIncomingConnections: 20000
net.serviceExecutor: adaptive
processManagement.fork: true
processManagement.pidFilePath: /ssd1/s/data/mongodb/config/mongod.pid
replication.replSetName: config
replication.enableMajorityReadConcern: false
sharding.clusterRole: configsvr
storage.dbPath: /ssd1/s/data/mongodb/config/data/
storage.journal.enabled: true
storage.engine: wiredTiger
storage.wiredTiger.engineConfig.cacheSizeGB: 5
systemLog.logAppend: true
systemLog.path: /ssd1/s/data/mongodb/config/mongod.log
systemLog.destination: file
systemLog.logRotate: rename
security.authorization: enabled
security.keyFile: /ssd1/s/data/mongodb/config/keyFile
启动文件
/etc/systemd/system/mongod-config.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
LimitNOFILE=327680
LimitNPROC=163840
User=root
Type=forking
PIDFile=/ssd1/s/data/mongodb/config/mongod.pid
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/bin/numactl --interleave=all /usr/local/mongodb/bin/mongod --quiet -f /ssd1/s/data/mongodb/config/config.conf
Restart=always
RestartSec=30
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
设置副本集
config={_id:"config",members:[{_id:0,host:"10.252.132.108:27100"},{_id:1,host:"10.252.132.109:27100"},{_id:2,host:"10.252.132.120:27100"}]}
rs.initiate(config)
rs.status()
权限所有share都设置
#观察副本集是否初始化成功,找到primary节点,创建root帐号
db.createUser({user:'admin',pwd:'root1q2w3e', roles:[ {role:'root', db:'admin'}]}
4,安装mongos
配置文件
echo d41d8cd98f00b204e9800998ecf8427e > /ssd1/s/data/mongodb/mongos/keyFile
chmod 600 /ssd1/s/data/mongodb/mongos/keyFile
/ssd1/s/data/mongodb/mongos/mongos.conf
net.bindIp: 10.252.132.108,127.0.0.1
net.port: 20000
net.maxIncomingConnections: 20000
processManagement.fork: true
processManagement.pidFilePath: /ssd1/s/data/mongodb/mongos/mongod.pid
sharding.configDB: config/10.252.132.108:27100,10.252.132.109:27100,10.252.132.120:27100
systemLog.logAppend: true
systemLog.path: /ssd1/s/data/mongodb/mongos/mongod.log
systemLog.destination: file
systemLog.logRotate: rename
security.clusterAuthMode: keyFile
security.keyFile: /ssd1/s/data/mongodb/mongos/keyFile
/etc/systemd/system/mongos.service
启动文件
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
LimitNOFILE=327680
LimitNPROC=163840
User=root
Type=forking
PIDFile=/ssd1/s/data/mongodb/mongos/mongod.pid
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/bin/numactl --interleave=all /usr/local/mongodb/bin/mongos --quiet -f /ssd1/s/data/mongodb/mongos/mongos.conf
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
总结:
systemctl stop mongod-config
systemctl stop mongo-rs1
systemctl stop mongo-rs2
systemctl stop mongo-rs3
systemctl stop mongos
rm -rf /ssd1/s/data/mongodb/rs1/data/* && \
rm -rf /ssd1/s/data/mongodb/rs2/data/* && \
rm -rf /ssd1/s/data/mongodb/rs3/data/* && \
rm -rf /ssd1/s/data/mongodb/config/data/*
设置分片
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root #这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
db.createUser({user: "routeadmin",pwd: "routeadmin",roles: [ { role: "userAdminAnyDatabase", db:"admin"}]})
db.createUser({user: "routecluster",pwd: "routecluster",roles: [ { role: "clusterAdmin", db:"admin"}]})
mongos> db.auth('routecluster','routecluster')
mongos> sh.addShard("rs1/10.252.132.108:27017,10.252.132.109:27017,10.252.132.120:27017")
mongos> sh.addShard("rs2/10.252.132.108:27018,10.252.132.109:27018,10.252.132.120:27018")
mongos> sh.addShard("rs3/10.252.132.108:27019,10.252.132.109:27019,10.252.132.120:27019")
mongos> sh.status()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5f676cf785cf4bfe505a27e9")
}
shards:
{ "_id" : "rs1", "host" : "rs1/10.252.132.108:27017,10.252.132.109:27017,10.252.132.120:27017", "state" : 1 }
{ "_id" : "rs2", "host" : "rs2/10.252.132.108:27018,10.252.132.109:27018,10.252.132.120:27018", "state" : 1 }
{ "_id" : "rs3", "host" : "rs3/10.252.132.108:27019,10.252.132.109:27019,10.252.132.120:27019", "state" : 1 }
active mongoses:
"3.6.17-4.0" : 1
autosplit:
Currently enabled: yes
balancer:
Currently enabled: yes
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
No recent migrations
databases:
{ "_id" : "config", "primary" : "config", "partitioned" : true }
config.system.sessions
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
rs1 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : rs1 Timestamp(1, 0)
mongos>
标签:副本,mongodb,10.252,mongos,分片,config,ssd1,data,rs1
From: https://www.cnblogs.com/tiantao36/p/18166724