• mongodb 安装


    yum 安装 阿里镜像库 , 注意不要用阿里自带的系统 , 要用centos镜像

    1. # 创建一个 .repo 文件
    2. vi /etc/yum.repos.d/mongodb-org.repo
    3. # 添加内容
    4. [mongodb-org]
    5. name = MongoDB Repository
    6. baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
    7. gpgcheck = 1
    8. enabled = 1
    9. gpgkey = https://www.mongodb.org/static/pgp/server-4.4.asc
    10. # 根据镜像版本进行选择对应的mongo版本
    11. 安装:
    12. yum install -y mongodb-org

     下载方式二

    从官网下载 社区版的 tgz文件

    tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

    // 移动到usr/local/mongodb下

    mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

     key文件生成(整个集群或者副本之间通信用,所有服务该文件要一致):

    openssl rand -base64 128 > /opt/mongodb/keyFile 

    文件设置权限,权限太大报错:

    chmod 400 mongod.key

    mongod.conf   

    1. systemLog:
    2. #MongoDB发送所有日志输出的目标指定为文件
    3. destination: file
    4. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    5. path: /file//server/mongodb/conf_27020/logs/mongod.log
    6. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    7. logAppend: true
    8. storage:
    9. #mongod实例存储其数据的目录,storage.dbPath设置仅适用于mongod。
    10. dbPath: /file//server/mongodb/conf_27020/data
    11. journal:
    12. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    13. enabled: true
    14. processManagement:
    15. #启用在后台运行mongos或mongod进程的守护进程模式
    16. fork: true
    17. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
    18. pidFilePath: /file//server/mongodb/conf_27018/mongod.pid
    19. security:
    20. authorization: 'enabled'
    21. keyFile: /usr/local/mongodb/mongod.key
    22. clusterAuthMode: "keyFile"
    23. net:
    24. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
    25. #服务实例绑定的IP
    26. bindIp: localhost,172.2.1.1
    27. #绑定的端口
    28. port: 27017
    29. replication:
    30. #副本集的名称
    31. replSetName: shard01
    32. sharding:
    33. #分片角色 shardsvr 数据副本 configsvr 配置副本
    34. clusterRole: shardsvr

    一般集群3台服务起: 每台服务都部署  一主一从一配置(仲裁),如果只配置主从方案,当前文档的一个服务配置方式就是主从方案

    每台服务的配置除了服务和集群副本名称基本一样,同一个服务器的集群副本一致,也可以都一样, conf文件夹我创建在bin同级目录 , 日志和数据(logs/data)文件夹自行创建

    mongodb 分片集群

    配置文件略有不同。配置副本使用

    sharding:
      #分片角色   
      clusterRole: configsvr

    一台服务器上部署一主一从一副本,副本集之间名称一致

    两台主从配置一台配置服务,配置服务配置文件下面都一样

    replication:
      #副本集的名称
      replSetName: config
    sharding:
      #分片角色   shardsvr 数据副本 configsvr 配置副本
      clusterRole: configsvr

    创建完成之后操作数据库进行主从/配置关联

    ./mongod -f ../conf/conf_27018/mongod.conf  主库
    ./mongod -f ../conf/conf_27019/mongod.conf  从库
    ./mongod -f ../conf/conf_27020/mongod.conf  配置服务 clusterRole值为configsvr

    主: 27018 (哪个执行rs.initiate() 哪个是主库)

    从: 27019

    配置: 27020

    1. 在bin目录下执行:
    2. # ./mongo --port 27018
    3. 初始化(执行该命令的端口mongo服务将会是主服务):
    4. # rs.initiate()
    5. 确定好主服务后:
    6. 切换到admin , 创建用户
    7. # use admin
    8. # db.createUser({
    9. user: "root",
    10. pwd: "123456",
    11. roles: [{ role: "root", db: "root" }]
    12. })
    13. 认证
    14. # db.auth("root","123456")
    15. 添加副本:
    16. # rs.add("localhost:27019")
    17. 添加仲裁
    18. # rs.addArb("localhost:27020")
    19. 进入从节点,标记为从库,注意:rs.slaveOk() 当前版本已经无效
    20. # rs.secondaryOk()
    21. 完成之后执行查看副本状态:
    22. # rs.status()

    启动服务:

    ./mongod -f ../conf/conf_27018/mongod.conf  
    ./mongod -f ../conf/conf_27019/mongod.conf 
    ./mongod -f ../conf/conf_27020/mongod.conf 

    关闭服务

    ./mongod -f ../conf/conf_27018/mongod.conf   -shutdown
    ./mongod -f ../conf/conf_27019/mongod.conf   -shutdown
    ./mongod -f ../conf/conf_27020/mongod.conf   -shutdown

    搭建路由mongos配置mongos.conf:

    1. systemLog:
    2. #MongoDB发送所有日志输出的目标指定为文件
    3. destination: file
    4. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    5. path: /server/mongodb/mongos/logs/mongod.log
    6. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    7. logAppend: true
    8. processManagement:
    9. #启用在后台运行mongos或mongod进程的守护进程模式
    10. fork: true
    11. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
    12. pidFilePath: /server/mongodb/mongos/mongod.pid
    13. security:
    14. keyFile: /usr/local/mongodb/mongod.key
    15. net:
    16. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
    17. #bindIpAll:true
    18. #服务实例绑定的IP
    19. bindIp: localhost,127.0.0.1
    20. #bindIp
    21. #绑定的端口
    22. port: 27017
    23. sharding:
    24. #指定配置节点副本集 , 配置服务的一住二从
    25. configDB: hzxcConfg/localhost:27018,localhost.16:27019,localhost.16:27020

    创建完成启动mongos

    ./mongos -f ../conf/mongos/mongos.conf

     进入mongos中

    ./mongo --host 127.0.0.1  --port 27017
    

    添加分片集,如果提示权限问题,先登录db.auth("username","password")

    分片集名称/ip+端口号

    1. sh.addShard("shard02/127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020")
    2. sh.addShard("shard01/127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020")

    开启分片:

    1. # 数据库开启分片
    2. sh.enableSharding("table_name")

    hash分片  如: sh.shardCollection("table_name.test",{"id":"hashed"})

    分片前先创建索引: 

    语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。

    db.collection.createIndex(keys, options)

    路由集

    所有路由集的配置文件基本一致 , 启动后不需要配置 , 配置集会同步相关的表结构/分片信息 \

    springboot配置集群链接

    1. spring:
    2. data:
    3. mongodb
    4. uri: mongodb://username:password@127.0.0.1:27017,127.0.0.2:27017,127.0.0.3:27017/test?authSource=admin&authMechanism=SCRAM-SHA-1

  • 相关阅读:
    沈阳建筑大学《乡村振兴战略下传统村落文化旅游设计》 许少辉八一著作
    缓存-多级缓存
    Vue学习之--------脚手架的分析、Ref属性、Props配置(2022/7/28)
    都知道0.1+0.2 = 0.30000000000000004,那要怎么让它等于0.3
    基础篇——基础项目解析
    Python进阶——装饰器
    shell 流程控制
    git在merge时做了些什么
    Python rsync 同步
    Git基础
  • 原文地址:https://blog.csdn.net/wdz985721191/article/details/132862015