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()
    
  • 相关阅读:
    codeforces C. Cows and Sequence 解题报告
    codeforces A. Point on Spiral 解题报告
    codeforces C. New Year Ratings Change 解题报告
    codeforces A. Fox and Box Accumulation 解题报告
    codeforces B. Multitasking 解题报告
    git命令使用
    shell简单使用
    知识束缚
    php 调用系统命令
    数据传输方式(前端与后台 ,后台与后台)
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/14465315.html
Copyright © 2011-2022 走看看