MongoDB-副本集PSA架构搭建配置手册

1    安装配置

------------------------------------------------------------------------------------

机器准备:

•    系统:Red Hat Enterprise Linux Server release 7.3 (Maipo)
•    MongoDB版本:mongodb-linux-x86_64-rhel70-3.4.16
•    下载地址: http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.16.tgz
•    副本集模式:PSA
•    设备3台:
192.168.137.91(27020端口, primary)
192.168.137.92(27020端口, secondary)
192.168.137.93(27020端口, arbiter)

 

1.1    安装前准备

在三台机器上进行下面操作:
1.将安装包mongodb-linux-x86_64-rhel70-3.4.16.tgz解压到/usr/local/mongodb
2.在/usr/local/mongodb下创建conf和logs文件夹,用来稍后放置MongoDB的配置文件和运行日志
3.执行mkdir /data 创建数据目录
4.将/usr/local/mongodb/bin加入到环境变量.bash_profile方便日后使用

 

1.2     主节点安装

1)   在/usr/local/mongodb/conf新增下面配置文件mongodb.conf

systemLog:
  destination: file
  path: /usr/local/mongodb/logs/mongod.log
  logAppend: true
storage:
  dbPath: /data
  journal:    
    enabled: false
  directoryPerDB: true
processManagement:
  fork: true
  pidFilePath: /usr/local/mongodb/mongod.pid
net:
  port: 27020
setParameter:
  failIndexKeyTooLong: false

配置解释:

MongoDB-副本集PSA架构搭建配置手册

 

2)启动MongoDB服务

linux shell > mongod -f /usr/local/mongodb/conf/mongodb.conf  &

 

3)连接MongoDB,必须指定端口号,因为默认的端口为27017

linux shell >  mongo 127.0.0.1:27020

 

4)在MongoDB shell创建管理员帐号

use  admin;
db.createUser(
   {
     user: "admin",
     pwd: "admin",
     roles: [ "__system","backup","clusterAdmin","dbAdminAnyDatabase","readWriteAnyDatabase","userAdminAnyDatabase" ]
   }
);

 

5)关闭MongoDB服务

mongod -f /usr/local/mongodb/conf/mongodb.conf  --shutdown

 

6)生成keyfile文件

openssl rand -base64  741 > /usr/local/mongodb/mongodb.keyfile
chmod 600 mongodb.keyfile         #权限必须为600

 

7)在MongoDB的配置文件mongodb.conf新增配置项

security:
  keyFile: /usr/local/mongodb/mongodb.keyfile
  authorization: enabled
replication:
  replSetName: mongodb_set

 

配置解释:

MongoDB-副本集PSA架构搭建配置手册

 

 

1.3    配置从节点、仲裁节点


1)将主节点mongodb.conf和mongodb.keyfile拷贝到从节点和仲裁节点的相应目录。

2)需修改仲裁节点mongod.conf。

MongoDB-副本集PSA架构搭建配置手册
 
3)启动所有节点MongoDB

 

 

1.4    配置主节点、从节点、仲裁节点


1) 在主节点登录MongoDB
mongo 127.0.0.1:27020/admin -uadmin -p

2)在主节点MongoDB shell执行下面命令,初始化副本集配置。确认返回的是{ “ok” : 1 }
use admin;
config={_id:"mongodb_set",members:[{_id:0,host:" 192.168.137.91:27020","priority":1}]};
rs.initiate(config);

3) 在主节点MongoDB shell执行下面命令,添加从节点
rs.add("192.168.137.92:27020");

4) 在主节点MongoDB shell执行下面命令,添加仲裁节点
rs.addArb("192.168.137.93:27020");

5) 在主节点执行rs.config();查看集群配置。

 

2    测试验证


2.1    插入数据测试

一、在主节点执行下面语句插入数据。

use test;
db.use.insert({username: "visionwang", age: 26})

MongoDB-副本集PSA架构搭建配置手册

二、在从节点依次执行下面三条语句测试验证。
rs.slaveOk();                                                          #从节点默认不可读写,明确从节点参数,暂时设置为可读
show collections;                                                  #查看当前集合

use test                                                                 #切换到test库
db.use.find();                                                         #查看数据
MongoDB-副本集PSA架构搭建配置手册

三、在从节点尝试插入数据。因从节点是不能写的,所以会报no-master.

MongoDB-副本集PSA架构搭建配置手册

 

2.2    故障转移测试

一、强行停止主节点的MongoDB。
 MongoDB-副本集PSA架构搭建配置手册

 

二、查看从节点和仲裁节点的日志。可以发现显示检测不到主节点的心跳

MongoDB-副本集PSA架构搭建配置手册

 

 

三、可以发现从节点的输入栏从SECONDARY变为PRIMARY
MongoDB-副本集PSA架构搭建配置手册

 

四、再次起来原本的主节点,发现会变成SECONDARY。

MongoDB-副本集PSA架构搭建配置手册