- 规划节点:
- 确定要使用的节点数量及角色,如配置服务器(Config Server)、仲裁节点(Arbiter)、数据节点(Data Node)等。一般建议配置服务器至少3个节点,以保证高可用性和数据冗余。
- 安装MongoDB:
- 在每个规划好的节点上安装MongoDB软件,可以从MongoDB官方网站下载对应操作系统版本的安装包,按照官方文档的指引进行安装。
- 配置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()
命令,根据节点数量调整副本集配置。
- 配置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()
命令。
- 配置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
命令。
- 添加Shard到集群:
- 连接到mongos实例,使用
sh.addShard("shard1ReplSet/<数据节点1地址:端口,数据节点2地址:端口>")
等命令,将各个数据节点副本集添加到集群中。
- 启用Sharding:
- 连接到mongos实例,对于要进行多库多集合共用集群的数据库,使用
sh.enableSharding("<数据库名称>")
命令启用分片。
- 对于要分片的集合,选择合适的分片键,使用
sh.shardCollection("<数据库名称>.<集合名称>", {"分片键字段": 1})
命令进行集合分片。