一、安装mongo软件 1
二、单节点mongo实例创建 2
2.1创建实例目录 2
2.2创建配置文件 3
2.3 启动单节点MONGO数据库并验证 5
2.4创建root 账号,登入数据库,创建用户 6
三、 集群配置 6
3.1按照主实例的安装步骤,创建从节点,并启动验证后关闭 6
3.2配置 replicaset 7
3.3复制主节点keyFile到从节点 7
3.4初始化REPLICASET 7
本文档描述如何配置MONGODB 副本集架构。分为软件安装,单实例创建, 副本集配置三个部分。供手动配置副本集架构参考。以mongodb-linux-x86_64-rhel70-4.2.10.tgz为例,可以在官网下载。
一、安装mongo软件
Mongodb软件的安装相比其他软件的安装步骤简单很多, 不需要做编译等动作哦,直接将可执行文件解压到相应的目录。
创建用户
如下步骤创建mongo 账号
groupadd mongo useradd -g mongo -G mongo mongo |
创建目录
如下步骤创建必要的软件安装目录
mkdir -p /app/mongo/4.2.10 |
安装解压软件
mkdir -p /app/mongo/4.2.10 Tar -zxvf mongodb-linux-x86_64-rhel70-4.2.10.tgz /app/mongo/4.2.10 |
修改环境变量
|
或修改全局变量
|
二、单节点mongo实例创建
2.1创建实例目录
一个mongo 单实例有三个目录
data 放数据文件
log 放日志文件
etc 放配置文件,通讯KEY, 脚本
命令如下, 其中demo为mongo实例标识
mkdir -p /app/mongo_data/data mkdir -p /app/mongo_data/etc mkdir -p /app/mongo_data/log |
2.2创建配置文件
配置文件分为日志、进程管理、网络、存储、性能分析、安全、副本集等部分, 定义了mongodb的配置,配置文件一般放在mongo实例的etc目录下
常见的配置项解释:
port | 端口 |
dbpath | 数据目录 |
logpath | 运行日志路径 |
logappend | 系统日志会向logpath指定的文件持续追加 |
fork | 是否已后台进程运行 |
shardsvr | 是否为sharding实例 |
replSet | 分片名称 |
maxConns | 最大连接数 |
noauth | 是否不认证,初始化阶段先不打开认证,新建root账号后重启打开认证 |
auth | 是否打开认证 |
可参考下面模板,编写自己的配置文件, 配置文件放在实例的etc目录下
配置文件模板mongod.cnf
|
2.3 启动单节点MONGO数据库并验证
启动单节点实例配置前,需要对配置文件做修改
1、根据需要修改IP ,端口,路径
2、需要注释掉SECURITY部分,和replicationSet部分否则实例会无法启动
|
注意修改配置文件的位置
/app/mongo/4.2.10/bin/mongod -f /app/mongo_data/etc/mongo.cnf |
如下输出表示启动成功,
child process started successfully, parent exiting
2.4创建root 账号,登入数据库,创建用户
|
- 集群配置
3.1按照主实例的安装步骤,创建从节点,并启动验证后关闭
参考第二节单节点实例创建步骤, 安装从节点 。需要搭建2个从节点,端口不能冲突。分别登录从节点,配置root账号密码(保持和主节点一致),成功后,关闭节点。
|
3.2配置 replicaset
关闭主实例后, 生成KEY FILE
use admin; db.shutdownServer(); openssl rand -base64 90 > /app/mongo_data/etc/mongo.key chmod 400 /app/mongo_data/etc/mongo.key |
取消配置文件中security的注释和replicaton部分的注释, 然后启动数据库
3.3复制主节点keyFile到从节点
将mongo.key的文件从主节点拷贝到两个从节点实例目录的etc目录下, 并修改权限为400后启动,注意此时配置文件已经取消了security 和replicate部分的注释
/app/mongo/base/4.2.10/bin/mongod -f /app/mongo_data/etc/mongo.cnf |
3.4初始化REPLICASET
登录主节点, 进入mongoshell
mongo --port 28000 |
使用root 用户密码登录,
use admin; db.auth("root","******"); |
将配置信息赋值给config对象, 注意修改端口,IP 。另外_id需要跟配置文件的replSetName保持一致。
|
执行初始化动作
rs.initiate(cfg); |
如配置成功,输出如下所示
{ "ok" : 1 }
检查副本集状态
rs.Status(); |
在输出中检查myState字段和member中的health字段,如果均为1表示正常
3.5 配置开机启动
新增sh脚本
cd /usr/local/mongodb/
vim mongod_start.sh
添加如下内容:
#!/bin/bash
# pkill -9 mongod;
/usr/local/mongodb/bin/mongod --shutdown --dbpath /usr/local/mongodb/data/;
nohup /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/log.txt > /shell/mongod.log 2>&1 &
设置权限777
chmod 777 mongod_start.sh
6.2添加脚本到开机自启动
vim /etc/rc.d/rc.local
文件后面追加
sh /shell/mongod_start.sh
chmod +x /etc/rc.d/rc.local