MongoDB笔记(六):MongoDB 4.0 主从数据库、集群搭建(Windows环境)

注意:本文为Windows环境下操作

MongoDB在4.0版本,移除了主从数据库相关配置,官方推荐采用 replica set (副本集群)来代替

MongoDB 4.0 removes support for master-slave replication. Before you can upgrade to MongoDB 4.0, if your deployment uses master-slave replication, you must upgrade to a replica set.
To convert your master-slave replication, see Convert a Master-Slave Deployment to a Replica Set.

根据MongoDB官网文档的描述,当系统数据量较大时,不建议采用 mongodump 和 mongorestore 命令来备份和恢复,使用replica set更为合理。一般是3个MongoDB服务作为一组集群,目前在踩坑阶段,并没有其他服务器给我用,那么可以在自己电脑上启动多个MongoDB服务实例,来实现集群效果。

1.新建3个数据存储目录

假设集群名为rs,在MongoDB安装目录创建rs1,rs2,rs3文件夹(不一定要在安装目录下,可以在其他地方,这里是为了方便起见,请根据实际情况来调整)

2.复制3份配置文件,修改其内容,并添加replica set的配置

3份配置分别拥有不同的数据库目录、日志文件、端口号,自己来指定。我这里给分别命名为rs1,rs2,rs3。
以rs1的配置为例:
指定db目录:

storage:
  dbPath: D:\MongoDB\Server\4.0\rs1

日志文件:

systemLog:
  destination: file
  logAppend: false
  path:  D:\MongoDB\Server\4.0\log\rs1.log

端口ip配置:

net:
  port: 7777
  bindIp: 0.0.0.0

3个配置文件相同的集群属性:

replication:
  replSetName: "rs"

如果需要添加数据库访问的账号控制,得开启权限认证:

#开启身份认证
security:
  #集群需要指定同一个keyFile,为文本文件,内容即是密钥
  keyFile: D:\MongoDB\Server\4.0\key_file.txt
  #开启认证
  authorization : "enabled"
3.启动3个mongodb服务

指定配置文件来启动,如启动rs1实例:

mongod --config rs1.cfg

然后在浏览器里输入ip:port来访问,如localhost:7777,看到如下画面
在这里插入图片描述
说明服务已经启动了,按照此方法启动其他两个服务。

4.初始化集群

任意连接一个上述启动的服务,比如端口7777的:

mongo localhost:7777/dbname

如果设置了连接的账号密码:

mongo localhost:7777/dbname --username username --password password

连上之后输入命令,即可初始化副本集:

rs.initiate()

根据提示查看是否成功。

5.查看集群信息

一个副本集只有一个活跃节点(primary),其它为备份节点(secondary)。
查看当前是否活跃节点,连上当前服务后输入:

db.isMaster()

查看集群各个服务的状态:

rs.status()
6.生产环境配置

如果在正式生产环境,多个服务器部署集群,首先需要保证互相之间能够访问,然后配置方面和本机配置3个服务基本相同,只是ip、端口、数据目录根据实际情况变化。

7.测试

使用compass工具连接任意一个数据库
MongoDB笔记(六):MongoDB 4.0 主从数据库、集群搭建(Windows环境)_第1张图片
1.随意添加一点测试数据,然后切换其他数据库,查看数据是否同步。
2.关掉一个MongoDB服务,模拟服务宕机的情况,然后同样连接正常运行的库,添加修改数据等等;重新启动被关掉的服务,查看是否同步了最新的数据。

你可能感兴趣的:(MongoDB)