mongodb 添加复制集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb 添加复制集相关的知识,希望对你有一定的参考价值。

说明:
复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。其优点如下:
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

技术分享图片
.
.
2 .进入配置文件,设置数据类型名称。

vim /etc/mongod.conf
  replication:
     replSetName: abcrs     #设置数据类型名称

技术分享图片
.
.
3 . 更改配置文件后,把服务刷新下。

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   #端口号

技术分享图片
.
.
5 . 同样更改另外两个配置文件。

cp -p /etc/mongod2.conf /etc/mongod3.conf 
cp -p /etc/mongod2.conf /etc/mongod4.conf

技术分享图片
.
.
6 . 更改好后,启动实例。

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   #关掉一个进程节点

技术分享图片
此时的主节点就会切换到一个正常的节点上,故障转移。

以上是关于mongodb 添加复制集的主要内容,如果未能解决你的问题,请参考以下文章

亲测教你如何搭建 MongoDB 复制集 + 选举原理

MongoDB复制集选举原理管理

Mongodb副本集管理

Mongodb复制集配置

MongoDB 2.6复制集单节点部署

MongoDB 3.2复制集单节点部署