在Linux环境下部署MongoDB的副本集集群
一、目标
副本集搭建
二、操作步骤
构建服务器的结构
1.1 上传2个tgz文件到server1的目录下
1.2 克隆server1,server2 server3
1.3 使用FinalShell链接三台服务器(云端 ECS主机、NOSQL)
2.操作
2.1 创建多级目录
mkdir -p /usr/local/mongodb
在三台主机上解压
tar -xvzf mongodb-linux-x86_64-rhel70-7.0.14.tgz -C /usr/local/mongodb
查看之
ll /usr/local/mongodb
进入到/usr/local/mongodb,修改长的mongodb-linux-x86_64-rhel70-7.0.14变短
mv mongodb-linux-x86_64-rhel70-7.0.14 mongodb7
2.2新建目录: 三台机器建立config目录,包括子目录
mkdir -p /usr/local/mongodb/config/{conf,data,log,run}
目录结构概述
/usr/local/mongodb/config:
用途:存放配置服务器的相关文件。
子目录:
conf:存放配置服务器的配置文件(如 mongod.conf)。
data:存放配置服务器的数据文件。
log:存放配置服务器的日志文件。
run: 存储进程PID文件
2.3 配置环境变量
vim /etc/profile
# 内容
export MONGODB_HOME=/usr/local/mongodb/mongodb7
export PATH=$PATH:$MONGODB_HOME/bin
# 使立即生效
source /etc/profile
测试在任意位置,输入mongod,出来下面的界面
三、用户和服务管理
3.1 安装依赖包,缺少就安装
yum install libcurl openssl xz-libs
3.2创建用户,指定组标识符
删除用户:userdel -r 用户
删除组 : groupdel -r 组名
groupadd mongo -g 777
useradd mongo -g 777 -M -s /sbin/nologin
id mongo
四、设置服务
4.1 开机自启动
cat > /etc/systemd/system/mongodb.service << EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/mongodb/mongodb7/bin/mongod --config /usr/local/mongodb/config/conf/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/mongodb7/bin/mongod --config /usr/local/mongodb/config/conf/mongod.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
查看一下:
[root@localhost ~]# cat /etc/systemd/system/mongodb.service
4.2 三台机器的config 的配置
cat > /usr/local/mongodb/config/conf/mongod.conf << EOF
# 日志设置
systemLog:
destination: file # 日志写入文件
path: /usr/local/mongodb/config/log/mongod.log # 日志文件路径
logAppend: true # 追加日志
logRotate: rename # 日志轮转方式,支持 rename 或 reopen
# 网络设置
net:
port: 27017 # MongoDB 默认端口
bindIp: 0.0.0.0 # 允许从所有 IP 访问,生产环境建议限制
# 数据目录
storage:
dbPath: /usr/local/mongodb/config/data # 数据文件存放路径
wiredTiger:
engineConfig:
cacheSizeGB: 1 # 根据情况配置内存
# 进程设置
processManagement:
fork: true # 以后台进程方式运行
pidFilePath: /usr/local/mongodb/config/run/mongod.pid # PID 文件路径
#复制集名称
replication:
replSetName: "myconfigset"
EOF
查看之:
[root@localhost ~]# cat /usr/local/mongodb/config/conf/mongod.conf
五、启动三台config server (3台)
mongod --config /usr/local/mongodb/config/conf/mongod.conf
[root@localhost ~]# netstat -lntup |grep 27017
六、安装mongosh
安装好mongosh工具,方便副本集使用,
在三台机器上执行解压
tar zxvf mongosh-2.4.2-linux-x64.tgz -C /usr/local/mongodb
所有主机,大内存页 关闭 hugepage
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
要启动客户端,必须进入到下面目录
cd /usr/local/mongodb/mongosh-2.4.2-linux-x64/bin
启动命令:
./mongosh mongodb://server1:27017无法启动
在三台主机上编辑配置文件/etc/hosts
192.168.85.128 server1
192.168.85.133 server2
192.168.85.134 server3
复制指令,一个主机复制到其他主机。
[root@localhost bin]# scp /etc/hosts root@192.168.85.134:/etc/
七.初始化配置副本集(3台机器执行相同操作)
启动config server后,开始初始化副本集,登录任意一台开始初始化配置副本集
#7.0.14版本登录时在test>数据库下,切换到admin数据库
test> use admin
switched to db admin
admin>
#执行以下config变量,注意myconfigset,要和mongod.conf里配置一致。
config={_id:"myconfigset",members:[
{_id:0,host:"server1:27017"},
{_id:1,host:"server2:27017"},
{_id:2,host:"server3:27017",},
]}
#再执行初始化
rs.initiate(config)
#查看状态
rs.status()
#在sever2上解压客户端,且登录
primary:主机,写操作
secondary:从机:读操作
从机先查看:
重新加库和集合测试
-
环境配置:Linux服务器准备、网络设置、依赖安装
-
目录规划:标准化目录结构设计
-
服务管理:systemd服务配置与自启动
-
安全配置:专用用户创建、权限控制
-
副本集搭建:多节点部署与初始化
-
高可用验证:主从切换、数据同步测试
- 点赞
- 收藏
- 关注作者
评论(0)