MST

星途 面试题库

面试题:MongoDB多库多集合共用集群的基础配置

在实现MongoDB多库多集合共用集群时,需要进行哪些基础的集群配置步骤?请简要描述。
32.3万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. 规划节点
    • 确定要使用的节点数量及角色,如配置服务器(Config Server)、仲裁节点(Arbiter)、数据节点(Data Node)等。一般建议配置服务器至少3个节点,以保证高可用性和数据冗余。
  2. 安装MongoDB
    • 在每个规划好的节点上安装MongoDB软件,可以从MongoDB官方网站下载对应操作系统版本的安装包,按照官方文档的指引进行安装。
  3. 配置Config Server
    • 创建配置文件,例如config.conf,在其中指定configsvr选项,表明该节点是配置服务器。
    • 示例配置:
systemLog:
   destination: file
   path: /var/log/mongodb-configserver.log
   logAppend: true
storage:
   dbPath: /var/lib/mongodb-configserver
net:
   bindIp: <配置服务器IP地址>
   port: 27019
replication:
   replSetName: configReplSet
processManagement:
   fork: true
configsvr: true
  • 启动配置服务器实例,使用mongod -f config.conf命令。
  • 初始化配置服务器副本集,连接到其中一个配置服务器实例,使用rs.initiate()命令,根据节点数量调整副本集配置。
  1. 配置Shard Server(数据节点)
    • 为每个数据节点创建配置文件,例如shard1.conf,指定shardsvr选项。
    • 示例配置:
systemLog:
   destination: file
   path: /var/log/mongodb-shard1.log
   logAppend: true
storage:
   dbPath: /var/lib/mongodb-shard1
net:
   bindIp: <数据节点IP地址>
   port: 27020
replication:
   replSetName: shard1ReplSet
processManagement:
   fork: true
shardsvr: true
  • 启动每个数据节点实例,使用mongod -f shard1.conf等对应命令。
  • 分别初始化每个数据节点的副本集,连接到对应实例,使用rs.initiate()命令。
  1. 配置Query Router(路由节点,mongos)
    • 创建路由节点配置文件,例如mongos.conf
    • 示例配置:
systemLog:
   destination: file
   path: /var/log/mongodb-mongos.log
   logAppend: true
net:
   bindIp: <路由节点IP地址>
   port: 27017
sharding:
   configDB: configReplSet/<配置服务器1地址:端口,配置服务器2地址:端口,配置服务器3地址:端口>
processManagement:
   fork: true
  • 启动路由节点,使用mongos -f mongos.conf命令。
  1. 添加Shard到集群
    • 连接到mongos实例,使用sh.addShard("shard1ReplSet/<数据节点1地址:端口,数据节点2地址:端口>")等命令,将各个数据节点副本集添加到集群中。
  2. 启用Sharding
    • 连接到mongos实例,对于要进行多库多集合共用集群的数据库,使用sh.enableSharding("<数据库名称>")命令启用分片。
    • 对于要分片的集合,选择合适的分片键,使用sh.shardCollection("<数据库名称>.<集合名称>", {"分片键字段": 1})命令进行集合分片。