环境
[root@centos181001 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@mongodb-hotel-test ~]# mongo --version
MongoDB shell version v4.0.9
git version: fc525e2d9b0e4bceff5c2201457e564362909765
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
distmod: rhel70
distarch: x86_64
target_arch: x86_64
概述
三个成员副本集提供足够的冗余以承受大多数网络分区和其他系统故障。
这些集合还具有足够的容量用于许多分布式读取操作。
副本集应始终具有奇数个成员。这确保选举顺利进行。
注意实现
在生产中,将副本集的每个成员部署到自己的计算机,如果可能,绑定到标准的MongoDB端口27017。
如果可能,请使用逻辑DNS主机名而不是IP地址,尤其是在配置副本集成员或分片集群成员时。
逻辑DNS主机名的使用避免了由于IP地址更改而导致的配置更改。
第一步:准备3台主机并安装 MongoDB
请参照之前文章
第二步:设置集群
1.编辑配置文件以使用副本集模式运行
cp /etc/mongod.conf /etc/mongod.conf.bak
vim /etc/mongod.conf
## 添加以下内容
replication:
replSetName: "rs0"
2.启动 MongoDB
systemctl stop mongod.service
systemctl start mongod.service
systemctl status mongod.service
systemctl enable mongod.service
3.使用任何一个节点登录并执行以下命令
## 登录 MongoDB
mongo
## 执行命令
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "192.168.30.81:27017" },
{ _id: 1, host: "192.168.30.82:27017" },
{ _id: 2, host: "192.168.30.83:27017" }
]
})
## 查看副本集配置
rs.conf()
## 要检查副本集的状态
rs.status()
附录:1.将独立转换为副本集
1.关闭数据库
systemctl stop mongod.service
2.编辑配置文件以使用副本集模式运行
cp /etc/mongod.conf /etc/mongod.conf.bak
vim /etc/mongod.conf
## 添加以下内容
replication:
replSetName: "rs0"
3.启动 MongoDB
systemctl stop mongod.service
systemctl start mongod.service
systemctl status mongod.service
systemctl enable mongod.service
4.使用任何一个节点登录并执行以下命令
## 启动新的副本集
rs.initiate()
## 查看副本集配置
rs.conf()
## 要检查副本集的状态
rs.status()
网友评论