mongodb安装
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.6.tgz
tar zvxf mongodb-linux-x86_64-rhel80-5.0.6.tgz
mv mongodb-linux-x86_64-rhel80-5.0.6 /usr/local/mongodb5
export PATH=/usr/local/mongodb5/bin:$PATH
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo chown `whoami` /var/lib/mongo
sudo chown `whoami` /var/log/mongodb
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
cd /lib/systemd/system
vim mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb5/bin/mongod --config /usr/local/mongodb5/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb5/bin/mongod --shutdown --config /usr/local/mongodb5/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 mongodb.service
systemctl start mongodb.service
systemctl stop mongodb.service
systemctl enable mongodb.service
firewall-cmd --zone=public --add-port=27017/tcp --permanen
firewall-cmd --reload
mongodb副本集群搭建
1)主节点(Primary)
接收所有的写请求,然后把修改同步到所有Secondary。一个Replica Set只能有一个Primary节点,当Primary挂掉后,其他Secondary或者Arbiter节点会重新选举出来一个主节点。默认读请求也是发到Primary节点处理的,需要转发到Secondary需要客户端修改一下连接配置。
(2)副本节点(Secondary)
与主节点保持同样的数据集。当主节点挂掉的时候,参与选主。
(3)仲裁者(Arbiter)
不保有数据,不参与选主,只进行选主投票。使用Arbiter可以减轻数据存储的硬件需求,Arbiter跑起来几乎没什么大的硬件资源需求,但重要的一点是,在生产环境下它和其他数据节点不要部署在同一台机器上。
注意,一个自动failover的Replica Set节点数必须为奇数,目的是选主投票的时候要有一个大多数才能进行选主决策。
/usr/local/mongodb5/bin/mongod --port 8319 --dbpath /root/database/mongodb/data/mongo1 --replSet rs1
/usr/local/mongodb5/bin/mongod --port 8320 --dbpath /root/database/mongodb/data/mongo2 --replSet rs1
/usr/local/mongodb5/bin/mongod --port 8321 --dbpath /root/database/mongodb/data/mongo3 --replSet rs1
vi /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.conf
port=27017
dbpath= /usr/local/sdb/mongodb-linux-x86_64-4.0.4/db
logpath= /usr/local/sdb/mongodb-linux-x86_64-4.0.4/mongodb.log
logappend=true
fork=true
replSet=sciencedb
maxConns=100
noauth=true
journal=true
storageEngine=wiredTiger
bind_ip = 10.0.86.193
mongo --port=8319
use admin
cfg={ _id:"sciencedb", members:[ {_id:0,host:'127.0.0.1:8319',priority:2}, {_id:1,host:'127.0.0.1:8320',priority:1}, {_id:2,host:'127.0.0.1:8321',arbiterOnly:true}] };
rs.initiate(cfg)
rs.status()
添加节点命令:
添加secondary:rs.add({host: “127.0.0.1:8319”, priority: 1 })
添加仲裁点:rs.addArb(“127.0.0.1:8321”)
移除节点:rs.remove({host: “127.0.0.1:8319”})
备份恢复
mongodump -h dbhost -d dbname -o dbdirectory
mongorestore -h <hostname><:port> -d dbname <path>