MongoDB 部署分片集群

部署配置服务器:configsvr

先生成.conf文件

bash 复制代码
mkdir -p /data/mongodb/configsvr
vim /data/mongodb/configsvr/configsvr.conf
 
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/configsvr/configsvr.log
storage:
  dbPath: /data/mongodb/configsvr
  journal:
    enabled: true
processManagement:
  fork: true
net:
  port: 27018
  bindIp: 0.0.0.0
replication:
  replSetName: myconfig
sharding:
  clusterRole: configsvr

启动服务: mongod -f /data/mongodb/configsvr/configsvr.conf

配置副本集:

bash 复制代码
mongosh 127.0.0.1:27018
use admin
config = { _id:"myconfig", 
  configsvr: true,
  members:[
    {_id:0,host:"192.168.11.137:27018"},    {_id:1,host:"192.168.11.200:27018"}
  ]
}
rs.initiate(config)
 
rs.status()

部署数据分片服务器:

副本名称:shard1

bash 复制代码
mkdir -p /data/mongodb/shardsvr1
vim /data/mongodb/shardsvr1/shardsvr.conf
 
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/shardsvr1/shardsvr.log
storage:
  dbPath: /data/mongodb/shardsvr1/
  journal:
    enabled: true
processManagement:
  fork: true
net:
  port: 27017
  bindIp: 0.0.0.0
replication:
  replSetName: shard1
sharding:
  clusterRole: shardsvr

配置数据副本集:

bash 复制代码
mongosh 127.0.0.1:27017
use admin
config = { _id:"shard1", 
  members:[
    {_id:0,host:"192.168.11.137:27017"},
    {_id:1,host:"192.168.11.200:27017"}
  ]
}
rs.initiate(config)
 
rs.status()

部署Router (mongos)服务器:

bash 复制代码
mkdir -p /data/mongodb/router
vim /data/mongodb/router/router.conf
 
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/router/router.log
processManagement:
  fork: true
net:
  port: 27019
  bindIp: 0.0.0.0
sharding:
  configDB: myconfig/192.168.11.137:27018,192.168.11.200:27018

启动命令:mongos -f /data/mongodb/router/router.conf

为了高可用,你可以在另一台机器,再启动一个router实例(router开启多个实例,是不需要组成副本集的)

bash 复制代码
mongosh 127.0.0.1:27019
use admin
sh.addShard("shard1/192.168.11.137:27017,192.168.11.200:27017")
sh.status()

sh.addShard 把副本集分片,添加到mongos当中

开启数据库分片功能:

sh.enableSharding("MyTestDB")

对集合进行分片初始化:

sh.shardCollection("MyTestDB.UserInfo" , {_id: 'hashed'}) //用哈希算法进行分片

.net连接router:

var client = new MongoClient("mongodb://router1IP:port,router2IP:port");

相关推荐
小江的记录本11 分钟前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi16 分钟前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
dFObBIMmai1 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw01 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
czlczl200209251 小时前
利用“延迟关联”优化 MySQL 巨量数据的深分页查询
数据库·mysql
ACP广源盛139246256732 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
Elastic 中国社区官方博客2 小时前
ES|QL METRICS_INFO 和 TS_INFO:为你的时间序列数据建立目录
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索
俺不要写代码2 小时前
数据库:函数
数据库·mysql
2401_882273722 小时前
如何在 CSS 中正确加载本地 JPG 背景图片
jvm·数据库·python
曹牧3 小时前
SQL:多个事务同时修改同一索引块
数据库·sql