zoukankan      html  css  js  c++  java
  • 部署primary secondary arbiter的mongodb分片集群

    配置yum源

    cat << 'EOF' > /etc/yum.repos.d/mongodb-org.repo
    [mongodb-org-4.2]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
    EOF
    

    安装最新版

    sudo yum install -y mongodb-org

    安装指定版本

    sudo yum install -y mongodb-org-4.4.4 mongodb-org-server-4.4.4 mongodb-org-shell-4.4.4 mongodb-org-mongos-4.4.4 mongodb-org-tools-4.4.4

    防止意外升级

    cat << 'EOF' >> /etc/yum.conf 
    exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
    EOF
    

    修改绑定ip,开启rs集群配置

    cat <<EOF > /etc/mongodb.conf
    replication:
        oplogSizeMB: 1024
        replSetName: rs0
    EOF
    

    登入mongo shell 配置集群

    mongo ip:port
    use admin
    cfg={ _id:"rs0", members:[ {_id:0,host:'192.168.27.40:27017',priority:2}, {_id:1,host:'192.168.27.41:27017',priority:1},   
    {_id:2,host:'192.168.27.42:27017',arbiterOnly:true}] }; 
    rs.initiate(cfg)
    

    查看集群状态

    rs.status()

    secondary 默认不能读写,需在主库设置

    rs.secondaryOk()

    常用操作

    # 显示所有存在的数据库
    show dbs;
    # 进入数据库
    use test;
    # 显示当前所在数据库
    db;
    显示当前数据库所有集合
    show collections;
    # 向当前数据库,students集合中插入一个学生文档
    db.students.insert({"name":"孙悟空","age":18,"sex":"男"});
    # 向当前数据库,students集合中插入多个学生文档
    db.students.insert([{"name":"紫霞","age":16,"sex":"女"},{"name":"牛魔","age":23,"sex":"男"}]);
    # 查询当前数据库,students集合中所有的文档
    db.students.find();
    # 查询当前数据库,students集合中符合条件的文档
    db.students.find({"sex":"男"});
    # 模糊查询
    db.students.find({"name":/牛/});
    # 查询当前数据库,students集合中所有的文档的总数
    db.students.find().count();
    # 根据字段排序,1正序  -1倒序
    db.students.find().sort({"age":1});
    # 部分字段更新,默认只修改一条记录
    db.students.update({"name":"牛魔"}, {$set:{"name":"牛魔魔"}});
    # 部分字段更新,修改多条记录
    db.students.updateMany({"sex":"男"}, {$set:{"sex":"男生"}});
    # 删除符合条件的文档
    db.students.remove({"name":"牛魔魔"});
    # 删除当前集合
    db.students.drop();
    # 删除当前数据库
    db.dropDatabase();
    # 查看正在执行的操作
    db.currentOp()
    # 查看当前的oplog时间窗口预计值
    rs.printReplicationInfo()
    
  • 相关阅读:
    QT 读写sqllite数据库
    SQLLite 简介
    arcengine 开发经典帖 【强烈推荐仔细研读】
    IHookHelper的用法
    ArcSDE中Compress与Compact的区别
    以Network Dataset(网络数据集)方式实现的最短路径分析
    ArcGIS网络概述
    ClassLoader.getResourceAsStream(name);获取配置文件的方法
    Xml中SelectSingleNode方法,xpath查找某节点用法
    Spring整合JUnit4测试使用注解引入多个配置文件
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/14465315.html
Copyright © 2011-2022 走看看