mongoDB大数据——mongodb副本集群搭建及节点动态管理(linux)

(1)副本集群思路图:

副本集群思路图如下:

mongoDB大数据——mongodb副本集群搭建及节点动态管理(linux)_第1张图片

(2)副本集群节点角色:

副本集最小构成是:primary(主节点),secondary(副本节点),arbiter(仲裁节点),一般部署是:primary(主节点),2 secondary(副本节点)。建议采用主节点(1)+副本节点(2)配置。

(3)副本集群搭建实例:

A、副本集群节点配置:

全部配置参数文档:

http://docs.mongodb.org/manual/reference/configuration-options/

1主节点+2备节点的副本集群配置参数样例:

参数类型

参数意义

参数名称

副本集群节点

192.168.99.10

192.168.99.11

192.168.99.12

节点角色

节点角色

主节点

备节点

备节点

单机参数

数据存储路径

storage.dbPath

/wocloud/mongodb/data

/wocloud/mongodb/data

/wocloud/mongodb/data

日志存储路径

systemLog.path

/wocloud/mongodb/logs/mongodb.log

/wocloud/mongodb/logs/mongodb.log

/wocloud/mongodb/logs/mongodb.log

日志追加存储

systemLog.logAppend

true

true

true

数据日志存储大小(MB)

replication.oplogSizeMB

10240

10240

10240

进程存储路径

processManagement.pidFilePath

/wocloud/mongodb/logs/mongodb27010.pid

/wocloud/mongodb/logs/mongodb27011.pid

/wocloud/mongodb/logs/mongodb27012.pid

安全认证开启

security.authorization

enabled

enabled

enabled

秘钥keyfile

security.keyFile

/wodloud/securityFile/keyfile

/wodloud/securityFile/keyfile

/wodloud/securityFile/keyfile

服务端口号

net.port

27010

27011

27012

服务IP地址

net.bindIp

192.168.99.10

192.168.99.11

192.168.99.12

后台运行进程

processManagement.fork

true

true

true

预分配方式开启

storage.mmapv1.preallocDataFiles

true

true

true

副本集参数

副本集名称

replication.replSetName

my_test

my_test

my_test

B、各个节点配置mongodb数据库:

各节点安装配置好mongodb,配置参数就按照副本集群节点配置的表格进行对应的配置即可。

C、启动各个节点mongodb服务:

将副本集中的各个节点的mongodb以后台运行进行启动。

D、连接任意节点配置副本集信息:

通过mongodb shell连接到任意一个mongodb数据库中,切换到admin数据库,配合副本集信息:

my_test_conf = {

    _id: "my_test",

    members: [

      {

        _id: 0,

        host: '192.168.99.10:27010',

        priority: 3

      },

      {

        _id: 1,

        host: '192.168.99.11:27011',

        priority: 2

      },

      {

        _id: 2,

        host: '192.168.99.12:27012',

        priority: 1

      }

    ]

  };

参数说明:

my_test_conf:可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。建议使用副本集名称_conf。例如:test_replicaset_conf

_id(外部):建议使用副本集的名称。

members._id:副本集成员主键,唯一即可,建议从0开始递增。

members.host:副本集节点的IP和端口号。

members.priority:副本集节点成为主节点的优先级,优先级最高的即成为主节点,特别注意对于仲裁节点需配置为:arbiterOnly:true

E、副本集配置信息初始化生效:

通过mongodb shell连接到任意一个mongodb数据库中,切换到admin数据库,执行初始化副本集配置信息命令:

rs.initiate(cfg);

括号内名称为副本集配置信息存储的名称。

F、查看副本集群状态信息:

通过mongodb shell连接到任意一个mongodb数据库中,切换到admin数据库,执行查看副本集集群状态信息命令:

rs.status();

配置的生效时间根据不同的机器配置会有长有短,配置不错的话基本上十几秒内就能生效,有的配置需要一两分钟。

G、操作工具连接副本集群:

通过mongodb compass、robo 3t等操作工具,连接到任意一个mongdob副本集群节点即可查看数据,如果要编辑数据,需要连接到主节点,因此建议连接到mongodb副本集群的主节点。

H、客户端连接副本集群:

客户端一般是代码中创建副本集客户端,创建客户端的时候一般是将副本集中的主、备节点地址全部写到url中并且填写副本集名称,客户端创建具体代码见本文档java集成mongodb副本集中创建客户端代码。

(4)副本集群登录认证:

副本集群搭建成功了,没有创建用户,如果创建用户了,需要重新执行创建用户和授权的操作:

A、所有节点配置keyfile路径:

在副本集群所有节点中配置keyfile用来内部认证:

security.keyFile=/wodloud/securityFile/keyfile

B、数据节点配置认证开启:

在副本集群中所有存储数据的节点配置auth用来登陆认证:

security.authorization=enabled

C、Openssl生成keyfile文件:

使用openssl命令创建一个64位的keyfile文件:

openssl rand -base64 64 > keyfile

然后将生成的keyfile文件移动到配置文件中指定的keyfile存储路径。

D、重新启动副本集群:

将副本集群重新启动,先启动主节点,再启动备节点。

E、登陆admin创建用户授权:

使用mongodb shell登陆主节点,然后use admin库,创建用户和授权。

F、用户登陆主节点查询:

使用mongodb shell登陆到主节点,然后use database切换库,再通过db.auth(“username”,”password”);进行用户认证即可查询。

G、用户登陆从节点查询:

使用mongodb shell登陆到主节点,然后use database切换库,再通过db.auth(“username”,”password”)进行用户认证,最后执行命令允许在从库上进行查询:rs.slaveOk(),即可在从库上进行查询。

(5)节点宕机处理:

如果副本集群中某个节点宕机,这个节点如果是主节点,那么会从备节点中选出一个节点为主节点,整个集群可以正常工作,管理员发现集群有节点宕机,会尽快查看并处理该节点,尽快让该节点重新启动,该节点正常启动后会自动添加到该集群中去,如果该节点是主节点,那么它会继续充当主节点的角色。

(6)副本集群节点动态管理:

A、查看集群节点:

通过mongo shell连接到主节点,然后use admin切换数据库,然后进行用户验证,最后执行查看集群信息命令:rs.status();

B、增加集群节点:

首先,按照参数配置好一个新的mongodb节点,然后将该节点进行启动。

然后,通过mongo shell连接到主节点,使用use admin切换数据库,并进行用户验证,最后执行添加集群节点命令:

rs.add("_id":1,"host":"192.168.137.10:27011", "priority" : 0)

C、减少集群节点:

通过mongo shell连接到主节点,使用use admin切换数据库,并进行用户验证,最后执行删除集群节点命令:

rs.remove("192.168.137.10:27012");

 

你可能感兴趣的:(mongodb,MongoDB大数据)