说明:
复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。其优点如下:
1 . 让数据更安全。
2 . 高数据可用性。
3 . 灾难恢复。
4 . 无停机维护(如备份、索引重建、故障转移)。
5 . 读绽放(额外的副本读取)。
6 . 副本集对应用程序是透明的。
.
.
实验环境:
.
.
实验步骤如下:(先安装好mongodb)
.
.
1 . 关闭防火墙。
systemctl stop firewalld.service
setenforce 0
添加3个实例,为这些实例创建数据存储目录与日志存储目录,以及提权
mkdir -p /data/mongodb/mongodb{2,3,4}
mkdir -p /data/mongodb/logs
touch /data/mongodb/logs/mongodb{2,3,4}.log
chmod 777 /data/mongodb/logs/*.log
vim /etc/mongod.conf
replication:
replSetName: abcrs #设置数据类型名称
mongod -f /etc/mongod.conf --shutdown #关闭mongod
mongod -f /etc/mongod.conf #开启mongod
.
.
4 . 将配置文件复制一份,并更改相应的参数,作为mongod2的配置文件。
cp -p /etc/mongod.conf /etc/mongod2.conf #复制配置文件,并重命名
vim /etc/mongod2.conf
path: /data/mongodb/logs/mongodb2.log #日志文件存放位置
....
dbPath: /data/mongodb/mongodb2 #数据文件存放位置
....
port: 27018 #端口号
cp -p /etc/mongod2.conf /etc/mongod3.conf
cp -p /etc/mongod2.conf /etc/mongod4.conf
mongod -f /etc/mongod2.conf
mongod -f /etc/mongod3.conf
mongod -f /etc/mongod4.conf #启动实例
查看一下端口是否开启。netstat -ntap #查看开启端口
此时就可以进入实例查看。
mongo --port 27018
mongo --port 27019
mongo --port 27020 #进入实例查看
.
.
7 .配置三个节点复制集。
db.stats() #查看复制集
cfg={"_id":"abcrs","members":[{"_id":0,"host":"192.168.200.132:27017"},{"_id":1,"host":"192.168.200.132:27018"},{"_id":2,"host":"192.168.200.132:27019"}]} #配置节点服务器相关联端口
.
.
8 . 启动复制集。rs.initiate(cfg) #启动复制集
.
.
9 . 可以进行节点的添加与删除,这里就不做演示了。代码如下:
rs.add("192.168.200.132:27020") #添加节点
rs.remove("192.168.200.132:27020") #删除节点
.
.
10 . 节点发生故障是不可避免的,故障转移也必不可少。
ps aux | grep mongod #查看开启节点
kill 6233 #关掉一个进程节点