1 复制集介绍
Mongodb复制集(Replication Set)由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。复制集提供冗余和高可用性,是所有生产部署的基础。
2 环境
三台阿里云
node1
node2
node3
- linux系统: centos7
- 安装MongoDB社区版下载MongoDB Community Server
下载地址:https://www.mongodb.com/try/download/community
三台linux下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.11.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-6.0.11.tgz
#安装mongosh
wget https://downloads.mongodb.com/compass/mongodb-mongosh-1.8.0.x86_64.rpm
yum install -y mongodb-mongosh-1.8.0.x86_64.rpm
添加环境变量
修改/etc/profile,添加环境变量,方便执行MongoDB命令
export MONGODB_HOME=/data/app/mongo
PATH=$PATH:$MONGODB_HOME/bin
然后执行source /etc/profile 重新加载环境变量
3 创建用户
创建mongo用户:
useradd mongo
passwd mongo
4 安装mongo
su mongo
创建数据,日志配置文件目录
mkdir -p /data/app/mongo/data/db
mkdir -p /data/app/mongo/data/logs
mkdir -p /data/app/mongo/data/conf
创建配置文件
vim /data/app/mongo/data/conf/mongod.conf
systemLog:
destination: file
path: /data/app/mongo/data/logs/mongod.log # log path
logAppend: true
storage:
dbPath: /data/app/mongo/data/db # data directory
net:
bindIp: 0.0.0.0
port: 27017 # port
replication:
replSetName: rs0
processManagement:
fork: true
security:
javascriptEnabled: false
authorization: enabled
三台linux同样操作
5 启动 MongoDB
三台linux同样操作
mongod -f /data/app/mongo/data/conf/mongod.conf
配置复制集
# mongosh --port 27017
# 初始化复制集
rs.initiate({
_id: "rs0",
members: [{
_id: 0,
host: "192.168.65.191:27017"
},{
_id: 1,
host: "192.168.65.192:27017"
},{
_id: 2,
host: "192.168.65.193:27017"
}]
})
复制集状态查询
- 查看复制集整体状态: rs.status()
- 查看当前节点角色:db.isMaster()
6 安全认证
创建用户
在主节点服务器上,启动mongo
use admin
#创建用户
db.createUser( {
user: "root",
pwd: "root",
roles: [ { role: "clusterAdmin", db: "admin" }]
})
创建keyFile文件
keyFile文件的作用: 集群之间的安全认证,增加安全认证机制KeyFile(开启keyfile认证就默认开启了auth认证了)。
openssl rand -base64 756 > /data/app/mongo/data/mongo.key
chmod 600 /data/app/mongo/data/mongo.key
启动mongod
mongod -f /data/app/mongo/data/conf/mongod.conf --keyFile /data/app/mongo/data/mongo.key
#进入主节点
mongosh --port 27017 -u root -p root --authenticationDatabase=admin
部署完毕!!!!!!