mongos分片副本集安装

主机 角色 端口
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> 

posted on 2024-04-29 21:58  吃草的青蛙  阅读(1)  评论(0编辑  收藏  举报

导航