利用三个云服务器,搭建MongoDB副本集模式(主从模式)

1. 下载安装mongoDB

首先我们需要在三台服务器上分别下载和安装mongoDB。

1.1. 打开服务器,创建目录

创建目录结构如下图所示:(日志文件会自动创建)(这里只创建myrs_27017目录及其子目录即可)
在这里插入图片描述

1.2. 下载mongoDB压缩包

把压缩包下载到指定目录(便于后期维护管理),然后解压。
在这里插入图片描述
相关命令参考菜鸟教程

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz    # 下载
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz                                    # 解压

mv mongodb-src-r4.2.8  /usr/local/mongodb4                          # 将解压包拷贝到指定目录

1.3. 配置文件

把配置文件下载到指定目录(便于后期维护管理)。
在这里插入图片描述
配置文件内容如下:

systemLog: 
    #MongoDB发送所有日志输出的目标指定为文件 
    destination: file 
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径 
    path: "/root/mongoDB/myrs_27017/log/mongod.log" 
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。 
    logAppend: true 
storage: 
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。 
    dbPath: "/root/mongoDB/myrs_27017/data/db" 
    journal:
        #启用或禁用持久性日志以确保数据文件保持有效和可恢复。 
        enabled: true 
processManagement: 
    #启用在后台运行mongos或mongod进程的守护进程模式。 
    fork: true 
    #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID 
    pidFilePath: "/root/mongoDB/myrs_27017/log/mongod.pid" 
net:
    #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip 
    #bindIpAll: true 
    #服务实例绑定的IP 
    # 0.0.0.0 表示所有ip都能访问
    bindIp: 0.0.0.0
    #绑定的端口 
    port: 27017 
replication: 
    #副本集的名称 
    replSetName: myrs

其他配置信息可参考官方文档

2. 开启服务器端口和安全组

Centos7开放及查看端口
(PS:别忘了开安全组(有的云服务器运营商中也称之为防火墙)中的端口)

3. 启动mongoDB并且进行连接

3.1. 根据配置文件,启动三个mongoDB

如下图所示,分别进入三个服务器的
/root/mongoDB/mongodb-linux-x86_64-4.0.10/bin
目录,然后执行
./mongod -f /root/mongoDB/myrs_27017/mongod.conf
在这里插入图片描述
(上述mongodb-linux-x86_64-4.0.10为文件名,自行修改)

3.2. 进入mongoDB,将三个数据库进行绑定

任意进入一个服务器,执行(0.0.0.0替换为自己服务器的外网ip,该ip可以是其他服务器的,不过这里推荐使用当前服务器的外网ip)

./mongo --host=0.0.0.0 --port=27017

3.2.1. 初始化新的副本集

rs.initiate()

在这里插入图片描述
1)“ok”的值为1,说明创建成功。
2)命令行提示符发生变化,变成了一个从节点角色,此时默认不能读写。稍等片刻,回车,变成主节点。

3.2.2. 查看副本集的配置内容

说明:
返回包含当前副本集配置的文档。

rs.conf()
myrs:PRIMARY> rs.conf()
{
   
   
        "_id" : "myrs",
        "version" : 1,
        "protocolVersion" : NumberLong(1),
        "writeConcernMajorityJournalDefault" : true,
        "members" : [
                {
   
   
                        "_id" : 0,
                        "host" : "VM-4-16-centos:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {
   
   

                        },
                        "slaveDelay" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "settings" : {
   
   
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "catchUpTimeoutMillis" : -1,
                "catchUpTakeoverDelayMillis" : 30000,
                "getLastErrorModes" : {
   
   

                },
                "getLastErrorDefaults" : {
   
   
                        "w" : 1,
                        "wtimeout" : 0
                }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值