vim /etc/yum.repos.d/mongodb-org-4.0.repo
添加如下内容:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=http://192.168.31.20/mongodb/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
cd /etc/yum.repos.d/
rm -f CentOS-*
yum install -y mongodb-org-4.0.3 mongodb-org-server-4.0.3 mongodb-org-shell-4.0.3 mongodb-org-mongos-4.0.3 mongodb-org-tools-4.0.3
mkdir -p /data1/mongodb/logs/
mkdir -p /data1/mongodb/shard1
mkdir -p /data1/mongodb/mongodcfg
mkdir -p /data1/mongodb/cnf/
cd /data1/mongodb/cnf/
/data1/mongodb/start_mongo_shard.sh
/data1/mongodb/stop_mongo_shard.sh
systemctl stop firewalld.service
systemctl disable firewalld.service
//一个节点执行即可
mongo --port 27019
config={_id:'rs01',members:[{_id:0,host:'192.168.31.61:27019'},{_id:1,host:'192.168.31.62:27019'},{_id:2,host:'192.168.31.63:27019'}]}
rs.initiate(config)
mongo --port 22000
config = {
_id : "configs",
configsvr: true,
members : [
{_id : 0, host : "192.168.31.61:22000" },
{_id : 1, host : "192.168.31.62:22000" },
{_id : 2, host : "192.168.31.63:22000" }
]
}
rs.initiate(config)
登陆mongos对应服务添加分片复制集,激活数据库和表分片
mongo --port 31000
use admin
db.runCommand({addshard:"rs01/192.168.31.61:27019,192.168.31.62:27019,192.168.31.63:27019"});
Shard.yaml
systemLog:
quiet: false
path: /data1/mongodb/logs/shard1.log
logAppend: false
destination: file
processManagement:
fork: true
pidFilePath: /data1/mongodb/shard1.pid
net:
bindIp: 0.0.0.0
port: 27019
maxIncomingConnections: 65536
wireObjectCheck: true
ipv6: false
storage:
dbPath: /data1/mongodb/shard1
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 16
journalCompressor: snappy
directoryForIndexes: false
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
replication:
replSetName: rs01
sharding:
clusterRole: shardsvr
config.yaml
systemLog:
quiet: false
path: /data1/mongodb/logs/mongodcfg.log
logAppend: false
destination: file
processManagement:
fork: true
pidFilePath: /data1/mongodb/mongodcfg.pid
net:
bindIp: 0.0.0.0
port: 22000
storage:
dbPath: /data1/mongodb/mongodcfg
directoryPerDB: false
engine: wiredTiger
syncPeriodSecs: 61
wiredTiger:
engineConfig:
cacheSizeGB: 16
journalCompressor: snappy
directoryForIndexes: false
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
sharding:
clusterRole: configsvr
replication:
replSetName: configs
Mongos.yaml
systemLog:
quiet: false
path: /data1/mongodb/logs/mongods.log
logAppend: false
destination: file
sharding:
configDB: configs/192.168.31.61:22000,192.168.31.62:22000,192.168.31.63:22000
processManagement:
fork: true
pidFilePath: /data1/mongodb/mongos.pid
net:
bindIp: 0.0.0.0
port: 31000
maxIncomingConnections: 1024
wireObjectCheck: true
ipv6: false
start_mongo_shard.sh
#!/bin/sh
mongod --config=/data1/mongodb/cnf/Shard.yaml
mongod --config=/data1/mongodb/cnf/config.yaml
mongos --config=/data1/mongodb/cnf/Mongos.yaml
stop_mongo_shard.sh
#!/bin/sh
kill `cat /data1/mongodb/shard1.pid`
kill `cat /data1/mongodb/mongodcfg.pid`
kill `/data1/mongodb/mongos.pid`
注册服务:
编辑文件:
vim /usr/lib/systemd/system/mongodb.service
添加内容:
[unit]
Description=mongodb
After=network.target
[Service]
Type=forking
ExecStart=/data1/mongodb/start_mongo_shard.sh
ExecStop=/data1/mongodb/stop_mongo_shard.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
开启开机启动
systemctl enable mongodb开机自动启动
服务启动
systemctl start mongodb
服务关闭
systemctl stop mongodb
如果启动未成功使用systemctl status mongodb 查看服务状态
通过journalctl -xe 查看错误日志记性拍错