博客
关于我
mongodb的HA方案
阅读量:170 次
发布时间:2019-02-26

本文共 1970 字,大约阅读时间需要 6 分钟。

关系型数据库与非关系型数据库的对比分析

关系型数据库

关系型数据库是最常用的数据库类型之一,其核心特点是基于数据模型进行操作。由于依赖数据模型,关系型数据库支持复杂的查询操作,尤其是在多个表之间进行联表操作时,通过SQL语句可以轻松实现。

优点:

  • 数据安全性高:数据直接存储于硬盘,硬件故障不会导致数据丢失。
  • 易于管理:通过SQL语句实现复杂查询操作。
  • 缺点:

  • 对内存要求较高:海量数据或复杂查询会占用大量内存。
  • 查询效率较低:在多表操作时可能耗时较长。
  • 非关系型数据库

    非关系型数据库以MongoDB为代表,具有以下特点:

  • 部署简单:无需复杂的关系模型,操作更加轻松。
  • 高效处理:通过虚拟内存+持久化存储,写操作速度快。
  • 不支持联表查询:无法直接关联多个表。
  • 处理海量数据能力强:内存级存储,查询速度快。
  • 优点:

  • 内存级存储:数据读取和查询速度极快。
  • 强大的处理能力:适合海量数据和复杂查询。
  • 部署简单:无需复杂的关系模型,配置轻松。
  • 缺点:

  • 无法进行联表查询:不适合需要关联多个表的场景。
  • MongoDB操作示例

    查询操作:

    db.getCollection('classes').find({ teachers: 1534 });

    排序操作:

    db.getCollection('classes').find().sort({ name: 1 });

    分页操作:

    db.getCollection('classes').find({ name: 1 }).limit(2); // 返回前两条记录db.getCollection('classes').find({ name: 1 }).limit(2).skip(3); // 返回第3、4、5条记录

    更新操作:

    db.BATCH_FLOWS_POLICY_TEMPLATE.update({ name: "abc" }, { $set: { global_name: "" } });

    批量更新:

    db.BATCH_FLOWS_POLICY_TEMPLATE.update({}, { $unset: { global_name: "" } }, { multi: true });

    统计行数:

    db.getCollection('classes').find({}).count();

    MongoDB配置与管理

    主节点配置:/etc/mongodb.conf中添加:

    master = truebind_ip = 1.1.1.1

    副节点配置:/etc/mongodb.conf中添加:

    slave = truesource = master_ip:27017

    查看数据库状态:

    systemctl status mongod.service

    故障转移测试:

  • 停止主节点:
  • mongo -u admin -p adminpwd rs.status()
    1. 查看状态:
    2. rs.status()

      MongoDB环境配置

      环境变量:

      export MONGO_URL='mongodb://1.1.1.1:27017,2.2.2.2:27017/'

      备份路由器设置:/etc/mongodb.conf中添加:

      second路由器配置rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "1.1.1.1:27017" }, { _id: 1, host: "2.2.2.2:27017" } ] })

      MongoDB管理命令

      创建集合:

      db.snmp.insert({ ip: "3.3.3.3", community: "cisco" });

      查询集合:

      db.snmps.find();

      MongoDB常用工具

      工具函数:

      • get_docs_by_criteria:支持联合查询。
      • get_docs_by_ids:支持批量查询多个ID。
      • insert_multi_docs:支持批量插入数据。
      • get_multi_sort:支持排序查询。

      数据库操作:

      • update:根据条件更新数据。
      • set:插入新数据。
      • update_by_criter:根据条件更新数据。

      MongoDB高级配置

      HA备份设置:确保备份路由器上有足够的存储空间,并配置:

      myrs:SECONDARY> db.getMongo().setSlaveOk();

      故障转移测试:

    3. 停止主节点:
    4. myrs:PRIMARY> use adminmyrs:PRIMARY> db.shutdownServer()
      1. 查看状态:
      2. rs.status()

        通过以上配置和操作,可以有效管理MongoDB数据库,确保数据的高效存储和快速查询,同时实现高可用性和数据冗余。

    转载地址:http://mnky.baihongyu.com/

    你可能感兴趣的文章
    numpy转PIL 报错TypeError: Cannot handle this data type
    查看>>
    NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>
    OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
    查看>>
    OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
    查看>>
    OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
    查看>>
    oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
    查看>>
    OAuth2授权码模式详细流程(一)——站在OAuth2设计者的角度来理解code
    查看>>
    OAuth2:项目演示-模拟微信授权登录京东
    查看>>
    OA系统多少钱?OA办公系统中的价格选型
    查看>>
    OA系统选型:选择好的工作流引擎
    查看>>
    OA让企业业务流程管理科学有“据”
    查看>>