二、redhat7.0 中MongoDB3.6.3 集群搭建

1、安装准备:

1.1 、系统为redhat7.0,MongoDB版本为3.6.3

MongoDB包下载地址:http://www.mongodb.org/downloads

mongodb-linux-x86_64-enterprise-rhel70-3.6.3

1.2补包

配置本地源:(系统光盘复制到/tools/rhel_dvd下)

[root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo

[rhel_dvd]
name=rhel_dvd
baseurl=file:///tools/rhel_dvd/
enabled=1
gpgcheck=0
[root@localhost yum.repos.d]# yum install cyrus-sasl-gssapi
[root@localhost yum.repos.d]# yum install net-snmp

1.3 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld


关闭SElinux 编辑配置文件

setenforce 0

[root@localhost yum.repos.d]# vim /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=permissive    #修改此参数

# SELINUXTYPE= can take one of three two values:

#     targeted - Targeted processes are protected,

#     minimum - Modification of targeted policy. Only selected processes are protected. 

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted



2、安装MongoDB

1.1 上传mongodb包至linux服务器

具体放置到目录:/tools

1.2新建 /mongodb目录


新建数据文件存放目录与log存放目录/conf文件

[root@localhost /]# mkdir /mongodb/data

[root@localhost /]# mkdir /mongodb/logs

[root@localhost /]# mkdir /mongodb/conf


新建mongodb.log文件

[root@localhost logs]# touch mongodb.log

[root@localhost tools]# cp mongodb-linux-x86_64-enterprise-rhel70-3.6.3.tgz /mongodb/

[root@localhost mongodb]# cd /mongodb/

[root@localhost mongodb]# tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-3.6.3.tgz 

[root@localhost mongodb-linux-x86_64-enterprise-rhel70-3.6.3]# mv  * /mongodb/

配置环境变量

[root@localhost mongodb]# vim /etc/profile

在文件最后添加:

export MONGODB_HOME=/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

使配置生效:

source /etc/profile

配置mongodb.conf文件


[root@localhost conf]# vim /mongodb/conf/mongodb.conf

dbpath = /mongodb/data #数据文件存放目录
logpath = /mongodb/logs/mongodb.log #日志文件存放目录
port = 27017  #端口
fork = true  #以守护程序的方式启用,即在后台运行
bind_ip=127.0.0.1,10.91.250.132 #局域远程访问本机IP

配置文件主要包括以下配置项:

dbpath = \ 指定数据的存放位置,必需项
logpath = \ 指定日志的存放位置
logappend = \ 日志以追加方式写入
pidfilepath = \ 存放启动mongod是分配的进程号
bind_ip = \ mongod监听的ip,可以不设置,不设置时,通过机器的ip访问
port = \监听的端口号,务必设置,默认的端口不安全
directoryperdb = \为每个数据库的数据分配一个存储目录,建议设置,数据更好管理
journal=\ 启用恢复日志,如果mongod意外退出,下一次启动时会根据恢复日志进行恢复,但恢复日志所占空间比较大。建议设置true
keyFile = \指定使用的key的路径,集群中的所有节点都要使用相同的key才能相互连接。(在集群搭建完成之前,不应当使用keyFile,否则在部署副本集和分片时会出现没有权限操作的情况)
auth = \ 是否使用授权认证机制,集群使用时,应当使用auth=true,但在集群部署时不应该使用auth=true
noprealloc = \ 是否预分配空间,预分配空间比较占空间;不预分配空间可能对性能有影响。
replSet = \节点所属副本集的名称
fork 务必将fork选项设置为true,否则当启动节点的终端意外退出时,节点的运行进程会被杀掉


启动mongoDB

[root@localhost conf]# mongod --config /mongodb/conf/mongodb.conf

MongoDB设置为系统服务

[root@localhost /]# vim /etc/rc.d/init.d/mongod

ulimit -SHn 655350
#!/bin/sh
## chkconfig: - 64 36
## description:mongod
case $1 in
start)
mongodb/bin/mongod --config /mongodb/conf/mongodb.conf
;;


stop)
mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"
;;


status)
mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
;;


esac

添加脚本执行权限:

[root@localhost /]# chmod +x /etc/rc.d/init.d/mongod


二、redhat7.0 中MongoDB3.6.3 集群搭建

1、以上为模板建三台mongoDB主机

2、三台机器IP分别是:10.91.250.141、10.91.250.142、10.91.250.143

3、编辑/mongodb/conf/mongodb.conf,加各节点IP

bind_ip=127.0.0.1,10.91.250.141  #节点本机IP

4、分别在三台机器上启动mongodb

其中–replSet表示副本集群参数 ,mongoTest是副本集名称,这里的名字可以任意取,另外两台机也要和这个一样

mongod -f /mongodb/conf/mongodb.conf --replSet repset

如果启动成功会看到类似下面的提示

[root@localhost ~]# mongod -f /mongodb/conf/mongodb.conf --replSet mongotest
about to fork child process, waiting until server is ready for connections.
forked process: 2641
child process started successfully, parent exiting

三、配置mongodb副本集

1、初始化副本集

进入其中一台机器的mongo shell操作

[root@localhost ~]# mongo -port 27017

2、使用admin库

MongoDB Enterprise > use admin

switched to db admin

3、mongo副本配置

MongoDB Enterprise repset:PRIMARY> config={_id:"repset",members:[{_id:0,host:"10.91.250.141:27017"},{_id:1,host:"10.91.250.142:27017"},{_id:2,host:"10.91.250.143:27017"}]}


MongoDB Enterprise > rs.initiate(config)


图表示初始化完毕

4、查看replica sets状态

MongoDB Enterprise repset:OTHER> rs.status()
{
        "set" : "repset",
        "date" : ISODate("2018-04-19T00:50:57.540Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1524099055, 1),
                        "t" : NumberLong(1)
                },
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1524099055, 1),
                        "t" : NumberLong(1)
                },
                "appliedOpTime" : {
                        "ts" : Timestamp(1524099055, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1524099055, 1),
                        "t" : NumberLong(1)
                }
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "10.91.250.141:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 802,
                        "optime" : {
                                "ts" : Timestamp(1524099055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-04-19T00:50:55Z"),
                        "infoMessage" : "could not find member to sync from",
                        "electionTime" : Timestamp(1524099024, 1),
                        "electionDate" : ISODate("2018-04-19T00:50:24Z"),
                        "configVersion" : 1,
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "10.91.250.142:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 44,
                        "optime" : {
                                "ts" : Timestamp(1524099055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1524099055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-04-19T00:50:55Z"),
                        "optimeDurableDate" : ISODate("2018-04-19T00:50:55Z"),
                        "lastHeartbeat" : ISODate("2018-04-19T00:50:56.062Z"),
                        "lastHeartbeatRecv" : ISODate("2018-04-19T00:50:56.790Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "10.91.250.141:27017",
                        "configVersion" : 1
                },
                {
                        "_id" : 2,
                        "name" : "10.91.250.143:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 44,
                        "optime" : {
                                "ts" : Timestamp(1524099055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1524099055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2018-04-19T00:50:55Z"),
                        "optimeDurableDate" : ISODate("2018-04-19T00:50:55Z"),
                        "lastHeartbeat" : ISODate("2018-04-19T00:50:56.060Z"),
                        "lastHeartbeatRecv" : ISODate("2018-04-19T00:50:56.789Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "10.91.250.141:27017",
                        "configVersion" : 1
                }
        ],
        "ok" : 1,
        "operationTime" : Timestamp(1524099055, 1),
        "$clusterTime" : {
                "clusterTime" : Timestamp(1524099055, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}

5、验证replica sets 数据一致性





在主共同点增加一个库,新建一条数据




刷新后节点二和三数据与节点一同步。



猜你喜欢

转载自blog.csdn.net/zhengguo38/article/details/79791274
今日推荐