MongoDB单数据中心集群部署方案

1 网络规划

本方案要求服务器数量为奇数,可允许少于一半服务器宕机或断网。如果有多于3个节点,可按需调整分片数量和分布规则。

主机名 IP地址 运行进程 防火墙开放端口
MONGO01 192.168.10.36 分片1-primary(主),分片2-arbiter(仲裁),分片3-secondary(从),mongos,config 20000,21000,22001~22003
MONGO02 192.168.10.37 分片1-secondary(从),分片2-primary(主),分片3-arbiter(仲裁),mongos,config 20000,21000,22001~22003
MONGO03 192.168.10.38 分片1-arbiter(仲裁),分片2-secondary(从),分片3-primary(主),mongos,config 20000,21000,22001~22003

2 部署环境

环境 版本
操作系统 CentOS7.4 64位系统
MongoDB版本 mongodb-linux-x86_64-rhel70-4.2.2
同步模块版本 mongo-shake-v2.2.1
内存 4GB+
CPU 2c+
存储空间 200GB

mongodb-linux-x86_64-rhel70-4.2.2下载地址:
https://download.csdn.net/download/Zhuge_Dan/12557607

mongo-shake-v2.2.1下载地址:
https://download.csdn.net/download/Zhuge_Dan/12557611

3 部署步骤

3.1 基础配置

3.1.1 关闭SELinux

[root@MONGO01 ~]# setenforce 0
[root@MONGO01 ~]# vi /etc/selinux/config
SELINUX=disabled								#将SELINUX设置为disabled
[root@MONGO01 ~]# getenforce 
Permissive

3.1.2 关闭防火墙或开放需要的业务端口

[root@MONGO01 ~]# systemctl stop firewalld								#关闭防火墙
[root@MONGO01 ~]# systemctl disable firewalld								#禁止防火墙开机自启

3.1.3 调整max_open_files

[root@MONGO01 ~]# echo '* soft nofile 65535' >> /etc/security/limits.conf

[root@MONGO01 ~]# echo '* hard nofile 65535' >> /etc/security/limits.conf

[root@MONGO01 ~]# cat /etc/security/limits.conf | tail -2
* soft nofile 65535
* hard nofile 65535

[root@MONGO01 ~]# echo 'ulimit -SHn 65535' >> /etc/rc.d/rc.local

[root@MONGO01 ~]# cat /etc/rc.d/rc.local | tail -1
ulimit -SHn 65535

[root@MONGO01 ~]# chmod +x /etc/rc.d/rc.local								#为rc.local增加可执行权限

3.1.4 重启检查SELinux、firewalld和open files

[root@MONGO01 ~]# reboot

[root@MONGO01 ~]# getenforce								#查看SELinux是否关闭成功
Disabled								#关闭成功

[root@MONGO01 ~]# systemctl status firewalld								#查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
    Active: inactive (dead)								#防火墙已关闭
      Docs: man:firewalld(1)

[root@MONGO01 ~]# systemctl is-enabled firewalld								#查看防火墙是否开机自启
disabled								#防火墙已禁止开机自启

[root@MONGO01 ~]# ulimit -a | grep open
open files                      (-n) 65535								#open files已调整为65535

3.1.5 配置其它设备

在其它所有服务器上操作前4步。
方法:可使用Xshell,在菜单栏“工具”中选择“发送键输入到所有会话”,同时控制多台设备。
在这里插入图片描述

3.2 上传软件包

上传mongodb-linux-x86_64-rhel70-4.2.2.tgz到各服务节点,然后解压缩、重命名。以上传到/usr/local/目录下为例:

[root@MONGO01 ~]# cd /usr/local/
[root@MONGO01 local]# tar -zxvf mongodb-linux-x86_64-rhel70-4.2.2.tgz
[root@MONGO01 local]# mv mongodb-linux-x86_64-rhel70-4.2.2 mongo
[root@MONGO01 local]# rm -f mongodb-linux-x86_64-rhel70-4.2.2.tgz

3.3 创建数据与日志目录

根据节点上的运行进程,依次创建数据目录。假设数据盘挂载目录是/data/。

[root@MONGO01 local]# mkdir -p /data/mongo/config/
[root@MONGO01 local]# mkdir -p /data/mongo/shard1/
[root@MONGO01 local]# mkdir -p /data/mongo/shard2/
[root@MONGO01 local]# mkdir -p /data/mongo/shard3/
[root@MONGO01 local]# mkdir -p /var/log/mongo/config/
[root@MONGO01 local]# mkdir -p /var/log/mongo/mongos/
[root@MONGO01 local]# mkdir -p /var/log/mongo/shard1/
[root@MONGO01 local]# mkdir -p /var/log/mongo/shard2/
[ro
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MongoDB的分片集群部署,您可以按照以下步骤进行操作: 1. 部署配置服务器(config server):配置服务器用于存储分片集群的元数据,可以独立部署或与其他组件共享服务器。您可以选择部署多个配置服务器以增加可用性。 2. 启动分片服务器(shard server):分片服务器用于存储数据,您可以选择在不同的物理机器或虚拟机上启动多个分片服务器。每个分片服务器都可以容纳一部分数据。 3. 启动路由器(router):路由器也称为mongos进程,它是应用程序和分片集群之间的中间件。它将客户端请求路由到正确的分片服务器,并协调数据的读写操作。 4. 添加分片:在启动了路由器和分片服务器之后,您需要将分片服务器添加到集群中。使用mongos进程连接到配置服务器,并使用`sh.addShard()`命令添加每个分片服务器。 5. 配置分片键(shard key):分片键用于将数据划分为不同的分片。选择一个适合您数据模式和查询模式的字段作为分片键,并使用`sh.shardCollection()`命令启用分片。 6. 验证部署:您可以使用`sh.status()`命令来验证集群的状态,并确保所有组件都正常工作。 这只是一个简的概述,实际部署过程可能会更加复杂,并且取决于您的环境和需求。建议您参考MongoDB官方文档中关于分片集群部署的详细指南,以获得更全面的了解和操作指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值