Centos7 搭建mongodb 4.0.3 复制集

版权声明:转载请注明出处! https://blog.csdn.net/Dream_bin/article/details/83860908

       为了能够让MongoDB支持事物,特意在Centos7 环境下搭建了MongoDB复制集。MongoDB在4.0之后开始支持事物。回话级别的事物。

目录

一、 环境说明 1

二、 搭建说明 1

三、 开始搭建 2

四、 配置副本集 2

五、 其他 3

  • 环境说明

系统:centos 7 ×64   

MongoDB:4.0.3

说明:本次搭建伪集群模拟,在真实操作当中可以也如此部署。

Mongodb 在4.0之后可以支持会话级别的事物所以。

  • 搭建说明

本次搭建有三个节点分别如下说明:

节点

端口号

节点身份

Mongodb1

27027

primary

Mongodb2

27028

secondary

Mongodb3

27029

secondary

       副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能够实现数据的异地备份,读写分离和自动故障转移。也就是说如果主服务器崩溃了,备份服务器会自动将其中一个成员升级为新的主服务器。使用复制功能时,如果有一台服务器宕机了,仍然可以从副本集的其他服务器上访问数据。如果服务器上的数据损坏或者不可访问,可以从副本集的某个成员中创建一份新的数据副本。早期的MongoDB版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主。目前已经淘汰master-slave模式,改为副本集,这种模式下有一个主(primary),和多个从(secondary),只读。支持给它们设置权重,当主宕掉后,权重最高的从切换为主。在此架构中还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据。此架构中读写数据都是在主上,要想实现负载均衡的目的需要手动指定读库的目标server。

  • 开始搭建
  1. 下载

$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.3.tgz

  1. 解压到:/opt/mongodb-replicaset 目录下:

$ tar -xvf mongodb-linux-x86_64-4.0.3.tgz

  1. 改名为mongo1

$ sudo mv mongodb-linux-x86_64-4.0.3 mongodb1

  1. 进入到mongodb1下创建文件

cd mongodb1

mkdir data   //数据目录

mkdir logs   //日志目录

mkdir conf  // 配置文件目录

 

  1. 配置文件

$  cd conf

$  touch mongo.conf   //新建配置文件

port=27027

dbpath=/home/lcc/mongodb1/data

logpath=/home/lcc/mongodb1/logs/mongod.log

fork = true 

bind_ip=0.0.0.0

replSet = replset

 

  1. 将mongodb1 复制三分mongodb2,mongodb3

如何所示:

  1. 注意修改暴露端口,已经data log 目录
  2. 启动服务。

cd mongodb1

./bin/mongod -f conf/mongo.conf

依次启动MongoDB2,mongodb3

注意启动的时候有可能需要root权限,假如没有root的权限,需要写入数据的时候会有提示 Permission denied。

  • 配置副本集
  1. 服务器启动之后,进入任意一个节点的命令行,将三个的实例关联起来

(只有一个MongoDB实例的时候可以这样用,当多个实例时可能不正确) 

$ cd mongodb1$ ./bin/mongo

      特别说明:MongoDB 默认启动端口为27017 。启动时候没有指定IP:端口时会默认启动27017端口。当在一台服务器当中可能需要搭建多个MongoDB实例时。使用上述命令就会有问题。解决办法既可以指定IP端口。

可以使用:$ ./bin/mongo ip:port 如  ./bin/mongo 192.168.154.201:27027

如可以使用:$ ./bin/mongo ip:port 如  ./bin/mongo 192.168.154.201:27027    

  1. 进入命令集合后可以配置:
config = {
    _id: "replset",
    members: [{
            _id: 0,
            host: "192.168.101.42:27027"
        },
        {
            _id: 1,
            host: "192.168.101.42:27028"
        },
        {
            _id: 2,
            host: "192.168.101.42:27029"
        }
    ]
}
  1. 初始化复制集合

$ rs.initiate(config)

  1. 查看复制集

rs.config()     // 查看集合

$ rs.isMaster()   // 查看主节点信息

  • 其他

后期发现问题及时更新。。。。

猜你喜欢

转载自blog.csdn.net/Dream_bin/article/details/83860908