【MongoDB】分片部署和应用实践全过程

基本概念

  • Router(mongos): 数据库集群请求的入口
  • Config Servers(replica set) 存储数据库的元数据,如路由,分片的配置
  • Share : 数据库拆分分片

具体操作

  • 配置主机名:
vi /etc/hosts
192.168.0.222 m1
192.168.0.111 m2
192.168.0.113 m3
  • 安装目录为:/opt/mongodb/cluster
  • 创建目录和日志目录:
    • mkdir -p /opt/mongodb/cluster/{config,mongos,shard1,shard2,shard3}/{data,logs}
    • 通过tree mongodb 查看目录结构
  • 安装依赖包:
    • yum install -y libcurl openssl xz-libs
  • 下载mongodb下载包,并解压到mongodb目录下
    • wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.21-rc0.tgz -P /tmp
    • tar -zxvf mongodb-linux-x86_64-rhel70-5.0.21-rc0.tgz -C /opt/mongodb --strip=1
  • chown -R mmongo:mmongo /opt/mongodb 设置mongodb的文件权限给mmongo用户
  • 安装rsync软件用于后续的文件分发
    • yum install -y rsync
  • 安装mongo 进行mongod的连接
    • 一般来说,在高版本的mongo使用的是mongosh,而不是之前的mongo了
    • 具体的链接:https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-debian-tarball/
  • 启动mongo进程
    • ./mongod xxx
  • 连接mongo进程
    • mongosh

分片集群部署规划

【MongoDB】分片部署和应用实践全过程_第1张图片

  • 部署说明:
    • configServer配置服务器建议部署为包含3个成员的副本集模式
    • shard分片请使用至少包含三个成员的副本集。
    • mongos没有副本集概念,一般来说一台机器部署一份就可以了,当然,如果机器上部署了多个项目,需要用不同的分片,那就部署多个,mongos是实际的业务连接的点,算是业务和数据库之间的桥梁
    • 本次部署使用3台服务器,部署3个mongos、3个configServer、以及3个分片,每个分片包含3个成员,都分布在不同服务器上。
  • 部署架构图:
    【MongoDB】分片部署和应用实践全过程_第2张图片
    • 此处需要说明的是:本次的所有的设置主都是在节点1上,因为复制集是先在节点1启动的,各个节点的优先级都是一样的

前期准备如下

  • mkdir -p /opt/mongodb/cluster/{config,mongos,shard1,shard2,shard3}/{data,logs}
  • 创建mmongodb的用户:
    • useradd -g mongod mongod
  • 配置mongod的目录权限
    • chown -R mongod:mongod /opt/mongodb
  • 设置configServer的配置,配置如下:
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /opt/mongodb/cluster/config/logs/mongod.log

# Where and how to store data.
storage:
  dbPath: /opt/mongodb/cluster/config/data

# how the process runs
processManagement

你可能感兴趣的:(mongodb,数据库,运维开发)