当前位置: 首页 > ds >正文

MongoDB Shard Cluster

 # MongoDB Shard Cluster
    集群规划
    132上面单独安装mongos
    在 1,2,3上面安装shard1和config
    在 4,5,6上面安装shard2
    节点host如下
    172.20.192.20 member1.blockin.ai
    172.20.192.21 member2.blockin.ai
    172.20.192.31 member3.blockin.ai
    172.20.192.32 member4.blockin.ai
    172.20.192.33 member5.blockin.ai
    172.20.192.34 member6.blockin.ai
    172.20.192.132 mongos1.blockin.ai
TODO
    172.20.192.22 member7.blockin.ai
    172.20.192.23 member8.blockin.ai
    172.20.192.56 member9.blockin.ai

    172.20.192.57 member10.blockin.ai

# 分片用的复制集 在1,2,3
mongod --bind_ip 0.0.0.0 --replSet shard1 --dbpath /data-db/shard1 --logpath /data-db/shard1/mongod.log --port 27010 --fork --shardsvr --wiredTigerCacheSizeGB 1


# 初始化分片
    mongo --host member1.blockin.ai:27010  rs.initiate({ 
        _id: "shard1",   
        "members": [
            {
                "_id": 0,
                "host": "member1.blockin.ai:27010"
            },
            {
                "_id": 1,
                "host": "member2.blockin.ai:27010"
            },
            {
                "_id": 2,
                "host": "member3.blockin.ai:27010"
            }
        ]
    });


# config复制集 在1,2,3
mongod --bind_ip 0.0.0.0 --replSet config --dbpath /data-db/config --logpath /data-db/config/mongod.log --port 27019 --fork --configsvr --wiredTigerCacheSizeGB 1

# 初始化
mongo --host member1.blockin.ai:27019  rs.initiate({
    _id: "config",
    "members": [
        {
            "_id": 0,
            "host": "member1.blockin.ai:27019"
        },
        {
            "_id": 1,
            "host": "member2.blockin.ai:27019"
        },
        {
            "_id": 2,
            "host": "member3.blockin.ai:27019"
        }
    ]
});


# mongos (对外服务可以多个)
mongos --bind_ip 0.0.0.0 --logpath /data-db/mongos/mongos.log --port 27017 --fork   --configdb  config/member1.blockin.ai:27019,member2.blockin.ai:27019,member3.blockin.ai:27019

# 创建mongos, 然后添加分片


mongo --host mongos1.blockin.ai:27017
mongos >  sh.addShard("shard1/member1.blockin.ai:27010,member2.blockin.ai:27010,member3.blockin.ai:27010");


sh.enableSharding("database")


sh.shardCollection("database.collection", {shardKey: 1})

db // 显示当前数据库的名字
db = db.getSiblingDB("database") // 切换到database数据库


sh.enableSharding("nft")


#分片用的复制集 在4,5,6

mongod --bind_ip 0.0.0.0 --replSet shard2 --dbpath /data-db/shard2 --logpath /data-db/shard2/mongod.log --port 27011 --fork --shardsvr --wiredTigerCacheSizeGB 1

# 初始化分片

mongo --host member4.blockin.ai:27011

mongo --host member4.blockin.ai:27011  rs.initiate({
    _id: "shard2",
    "members": [
        {
            "_id": 0,
            "host": "member4.blockin.ai:27011"
        },
        {
            "_id": 1,
            "host": "member5.blockin.ai:27011"
        },
        {
            "_id": 2,
            "host": "member6.blockin.ai:27011"
        }
    ]
});

# 加入第二个分片
# 连接到mongos, 添加分片
mongo --host member1.blockin.ai:27017

mongos >  sh.addShard("shard2/member4.blockin.ai:27011,member5.blockin.ai:27011,member6.blockin.ai:27011");

mongos > sh.status()


```shell
#!/bin/bash
# 创建目录

mkdir -p /data-db/shard1/ # 分片1
mkdir -p /data-db/shard2/ # 分片2
mkdir -p /data-db/config/ # 配置


# 下载并解压mongodb
cd /data-db/
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-4.4.22.tgz && tar -zxvf mongodb-linux-x86_64-ubuntu2004-4.4.22.tgz  && mv mongodb-linux-x86_64-ubuntu2004-4.4.22 mongodb


# 创建系统用户用于安装运行 mongodb
useradd -r -s /bin/false mongodb
# 把上面创建的目录授权给这个用户
chown -R mongodb:mongodb /data-db/mongodb
chown -R mongodb:mongodb /data-db/shard1
chown -R mongodb:mongodb /data-db/shard2
chown -R mongodb:mongodb /data-db/config

# 修改hosts文件
echo "172.20.192.20 member1.blockin.ai " >> /etc/hosts
echo "172.20.192.21 member2.blockin.ai " >> /etc/hosts
echo "172.20.192.31 member3.blockin.ai " >> /etc/hosts
echo "172.20.192.32 member4.blockin.ai " >> /etc/hosts
echo "172.20.192.33 member5.blockin.ai " >> /etc/hosts
echo "172.20.192.34 member6.blockin.ai " >> /etc/hosts

# 增加/data-db/mongodb到环境变量
echo "export PATH=\$PATH:/data-db/mongodb/bin" >> ~/.bashrc
source ~/.bashrc

```
 

http://www.xdnf.cn/news/2040.html

相关文章:

  • MySQL触法器
  • Cadence学习笔记之---原理图设计基本操作
  • 电子电子架构 --- 主机厂视角下ECU开发流程
  • 统计服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
  • 【XR手柄交互】Unity 中使用 InputActions 实现手柄控制详解(基于 OpenXR + Unity新输入系统(Input Actions))
  • MySQL表的操作 -- 表的增删改查
  • Linux 权限修改详解:chmod 命令与权限数字的秘密
  • 算法 | 基于SSA-CNN-LSTM(麻雀算法优化卷积长短期记忆神经网络)的股票价格预测(附完整matlab代码,公式,原理,可用于毕业论文设计)
  • 600W电源的EMC整改心得记录(PFC+LLC)
  • 【Chrony 时间同步双实验实操】从单节点校准到本地 NTP 服务器搭建详解
  • guvcview-源码记录
  • 项目质量管理
  • 风吸式杀虫灯环保优势
  • Coze高阶玩法 | 使用Coze制作思维认知提升视频,效率提升300%!(附保姆级教程)
  • Django之旅:第七节--模版继承
  • Git基本使用(很详细)
  • FWFT_FIFO和Standard_FIFO对比仿真
  • Shell脚本参数处理:位置变量/预定义变量
  • Java对接企业微信实战笔记
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
  • 【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法
  • BongoCat - 跨平台键盘猫动画工具
  • 线程同步与互斥
  • ElementUi的Dropdown下拉菜单的详细介绍及使用
  • 软件测试大模型Agent探索(dify:chatflow+企业微信机器人)
  • 【C++类和数据抽象】复制构造函数
  • SIEMENS PLC 程序 GRAPH 程序解读 车型入库
  • 【深度强化学习 DRL 快速实践】近端策略优化 (PPO)
  • mybatis-plus里的com.baomidou.mybatisplus.core.override.MybatisMapperProxy 类的详细解析
  • Python Cookbook-6.8 避免属性读写的冗余代码