zoukankan      html  css  js  c++  java
  • Mongodb4.0副本集构建

    目前最新的mongodb4.0.2已经支持事务这个重要特性,需要使用的话必须是复制或副本集,这是第一篇先研发如何构建副本集,因为副本集是目前最低成本的高可用群集方式。

    1.准备三台服务器,本次使用是的ubuntu16.04。分别在三台服务器执行如下安装指定,参考官方安装连接:https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/?_ga=2.66639470.1117419885.1536141422-1139377698.1531391990

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

    sudo apt-get update

    sudo apt-get install -y mongodb-org

    安装完成,以下是检测是否安装完成

    sudo apt-get install -y mongodb-org=4.0.x mongodb-org-server=4.0.x mongodb-org-shell=4.0.x mongodb-org-mongos=4.0.x mongodb-org-tools=4.0.x

    2. 三台服务器构建并启动数据库,本示例使用 /usr/mongo目录

    mkdir /usr/mongo

    chmod -R 777 /usr/mongo

    cd /usr/mongo

    mkdir data

    mkdir log

    //构建key file用于群集各数据库间身份验证(必须有此步才可以把最终的数据库登陆身份认证信息同步到各节点中)构建完成后复制key_file文件到各节点相同位置

    openssl rand -base64 756 > data/key_file
    chmod 400 data/key_file

    //构建数据库配置文件

    vim config.conf

    //添加以下配置内容(并复制到各节点相同位置)

    ```

    systemLog:
      destination: file
      path: /usr/mongo/log/mongod.log
      logAppend: true
    storage:
      journal:
       enabled: true
      dbPath: /usr/mongo/data
      directoryPerDB: true
      engine: wiredTiger
      wiredTiger:
       engineConfig:
        cacheSizeGB: 2
        directoryForIndexes: true
       collectionConfig:
        blockCompressor: snappy
       indexConfig:
        prefixCompression: true
    net:
      bindIp: 0.0.0.0
      port: 27017
      maxIncomingConnections: 40000
    replication:
         replSetName: "rs1"
         oplogSizeMB: 1024
    security:
         authorization: enabled
         keyFile: /usr/mongo/data/key_file

    ```

    //构建log数据库日志文件

    vim log/mongod.log

    3.分别在三台服务器以免身份验证方式启动数据库

    mongod -f config.conf

    4.构建账号供应用程序连接群集鉴权(本例只添加最高权限账号root) 尽量在此步连接单实例先创建账号

    //在主服务器连接本机mongodb实例

    mongo 127.0.0.1:27017/admin

    //创建root账号

    db.createUser(
        {
          user: "root",
          pwd: "password",
         
          roles: [{"role":"root","db":"admin"}],

        }
    )

    5.生效副本集(只需要在主节点操作一次)

    vim initreplica.js

    //添加以下内容(ip地址根据自己真实情况填写, priority是权重值,值最大默认为启动时主节点)

    ```

    var cfg = { _id: 'rs1',
         members: [
             { _id: 0, host:'192.168.200.244:27017', priority: 100},
             { _id: 1, host:'192.168.200.242:27017', priority: 50},
             { _id: 2, host:'192.168.200.243:27017', arbiterOnly: true}
         ]
    };

    var error = rs.initiate(cfg);
    printjson(error);

    ```

    //保存 文件

    //执行生效指令

    mongo 127.0.0.1:27017/admin initreplica.js

    //执行结果如下

    MongoDB shell version v4.0.2
    connecting to: mongodb://127.0.0.1:27017/admin
    MongoDB server version: 4.0.2
    {
         "ok" : 1,
         "operationTime" : Timestamp(1536314326, 1),
         "$clusterTime" : {
             "clusterTime" : Timestamp(1536314326, 1),
             "signature" : {
                 "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                 "keyId" : NumberLong(0)
             }
         }
    }

    6.以鉴权方式启动群集(三台机相同启动方式)

    mongod -f config.conf –auth

    //启动完成如下显示并程序常驻

    2018-09-08T11:06:59.452+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'

    //此时想查看当前数据库启动情况可以执行如下指令

    vim log/mongod.log

    7.数据库工具连接到集群

    mongodb://root:password@192.168.200.244:27017,192.168.200.242:27017,192.168.200.243:27017/?readPreference=primaryPreferred&replicaSet=rs1&authSource=admin

    8.工具推荐使用nosqlbooster,有免费版,试用期间功能一切可用,试用结束不能导入导出数据和没有智能提示功能。但会一直可用,下载地址:https://nosqlbooster.com

  • 相关阅读:
    Git with SVN 协同设定
    Apache+Django+mod_wsgi安装目录
    ROR study
    PHP框架
    Gerrit 配置
    Garmin、任我游品牌自制等高线方法比较
    使用python发送outlook约会提醒邮件
    Apache部署多个django site project
    Aptana Studio 3安装(Windows)
    The Art of Readable Code
  • 原文地址:https://www.cnblogs.com/jacle169/p/9608776.html
Copyright © 2011-2022 走看看