• MongoDB-分片


    1 分区1
    2 分区2
    3 路由服务器实例-mongos(客户端访问它)
    4 配置服务器实例-config

    1 分片 cd /d D:Testin1 10001
    2 分片 cd /d D:Testin2 10002
    3 配置 cd /d D:Testin3 10003
    4 路由 cd /d D:Testin4 10004

    //启动实例
    1 mongod -dbpath "D:Testdata1" -port 10001 -keyFile "D:Testkeyfile1key.txt"
    2 mongod -dbpath "D:Testdata2" -port 10002 -keyFile "D:Testkeyfile2key.txt"
    3 mongod -dbpath "D:Testdata4" -port 10003 -keyFile "D:Testkeyfile3key.txt"
    4 mongos -port 10004 -configdb 127.0.0.1:10003 -keyFile "D:Testkeyfile4key.txt" -chunkSize 1

    [注意]
    集群必须-keyFile安全模式,采用-keyFile模式后-auth不必添加,-keyFile隐含-auth。
    -keyFile 文件至少包含6个base64字符并且不大于1K

    //配置用户
    //4 mongod -dbpath "D:Testdata4" -port 10004 -keyFile "D:Testkeyfilekey.txt"

    ==操作全部针对[路由服务器]==

    //添加分片-- 配置路由服务器实例
    4 mongo 127.0.0.1:10004
    4 use admin
    4 db.auth("Mongo3","1000")
    4 db.runCommand({"addshard":"127.0.0.1:10001","allowLocal":true})
    4 db.runCommand({"addshard":"127.0.0.1:10002","allowLocal":true})
    [注意]
    使用配置服务器帐号
    当路由进程和分片在同一台机器上要指定allowLocal为true

    //删除分片-- 配置路由服务器实例 (需执行2次,第一次标记draining:true,第二次删除)
    4 db.runCommand({"removeshard":"127.0.0.1:10001"})
    [注意]
    删除后的分片实例重新添加时,必须把原有数据库删除,否则无法添加(主分片(基片)不允许删除)
    4 db.runCommand({"movePrimary": "", to: "" }) //将分片移动到指定的分片(主分片(基片))

    //开启数据库分片功能
    4 db.runCommand({"enablesharding":"us_user"})
    //指定集合中分片片键
    4 db.runCommand({"shardcollection":"us_user.user","key":{"userId":1}})
    4 db.runCommand({"shardcollection":"us_user.user","key":{"userId":"hashed"}}) //采用哈希分片,数据分布均匀


    //查看数据的分片情况
    4 db.printShardingStatus() //shards 分片信息/databases.partitioned 是否分片databases.primary 主分片(基片)

    //管理分片
    4 use config
    4 db.shards.find() //查看分片服务器
    4 db.databases.find() //查看分片的数据库
    4 db.chunks.find() //查看分片信息
    4 db.settings.find() //查看分片大小 单位MB
    4 db.settings.save({_id:"chunksize",value:1}) //改变分片大小


    //分片大小
    当数据超出设定大小后自动进行分片操作
    设置大小可以在 路由服务器实例 启动时设置 chunkSize 单位MB
    4 mongos -port 10004 -configdb 127.0.0.1:10003 -chunkSize 1


    =======
    单个分片实例只储存部分数据,路由实例不储存数据,只对数据访问进行映射
    直接对单个分片实例操作的数据只保存在该分片实例中[参与分片的数据库不建议直接操作]

    访问路由服务器只能用配置服务器账户,路由服务器不必设置帐号。
    片键建议使用主键,修改单条记录只能根据片键进行修改操作.批量可以不使用片键

    未分片数据库,添加数据时会保存到主分片(基片)

  • 相关阅读:
    Jocke的IOT之路--raspberrypi更换国内镜像
    利用PostMan 模拟上传/下载文件
    Java中的Lambda表达式
    设计模式之Jdk动态代理
    设计模式之代理模式
    Java内存模型及Java关键字 volatile的作用和使用说明
    JVM GC-----4、finalize()方法
    JVM GC-----3、垃圾对象的标记思路(二)
    JVM GC-----2、垃圾对象的标记思路(一)
    JVM GC-----1、垃圾回收算法
  • 原文地址:https://www.cnblogs.com/liuph/p/4596967.html
Copyright © 2020-2023  润新知