• mongodb副本集配置部署


    mongodb副本集部署和配置

    版本:mongodb4.4.2 

    mongodb单机副本集部署步骤如下: 

           [root@localhost software]# pwd

    /data/software 

    [root@localhost software]# ll

    total 87720

    -rw-r--r--. 1 root root 16137908 Jan  3 21:58 gcc-9.3.0.tar.gz

    -rw-r--r--. 1 root root 71386000 Nov 16 11:21 mongodb-linux-x86_64-rhel70-4.4.2.tgz

    -rw-r--r--. 1 root root    25548 Apr  7  2017 mysql57-community-release-el7-10.noarch.rpm

    drwxrwxr-x. 7 root root     4096 Jan  3 22:30 redis-6.0.9

    -rw-r--r--. 1 root root  2261418 Oct 27 03:14 redis-6.0.9.tar.gz 

    解压mongodb且进入mongodb目录,创建27011,27012,27013端口对应的储存数据文件夹:

    tar -zxvf mongodb-linux-x86_64-rhel70-4.4.2.tgz 

    mv mongodb-linux-x86_64-rhel70-4.4.2 mongodb-4.4.2 

    cd mongodb-4.4.2/ 

    mkdir -p /data/software/mongodb-4.4.2/27011/logs/

    mkdir -p /data/software/mongodb-4.4.2/27011/data/

    mkdir -p /data/software/mongodb-4.4.2/27011/key/

    mkdir -p /data/software/mongodb-4.4.2/27011/pid/

     

    mkdir -p /data/software/mongodb-4.4.2/27012/logs/

    mkdir -p /data/software/mongodb-4.4.2/27012/data/

    mkdir -p /data/software/mongodb-4.4.2/27012/key/

    mkdir -p /data/software/mongodb-4.4.2/27012/pid/

     

    mkdir -p /data/software/mongodb-4.4.2/27013/logs/

    mkdir -p /data/software/mongodb-4.4.2/27013/data/

    mkdir -p /data/software/mongodb-4.4.2/27013/key/

    mkdir -p /data/software/mongodb-4.4.2/27013/pid/ 

    创建和修改配置文件: 

    touch /data/software/mongodb-4.4.2/mongo-27011.conf

    touch /data/software/mongodb-4.4.2/mongo-27012.conf

    touch /data/software/mongodb-4.4.2/mongo-27013.conf 

    mongo-27011.conf配置:

    [root@localhost mongodb-4.4.2]# cat  mongo-27011.conf

    systemLog:

       destination: file

       path: "/data/software/mongodb-4.4.2/27011/logs/mongodb.log"

       logAppend: true

    storage:

       dbPath: "/data/software/mongodb-4.4.2/27011/data"

       journal:

          enabled: true

    #   mmapv1:

    #     smallFiles: true

       wiredTiger:

          engineConfig:

            configString: cache_size=500m

    processManagement:

          fork: true

    net:

       port: 27011

       bindIp: 0.0.0.0

    setParameter:

       enableLocalhostAuthBypass: false

    # 开启授权认证

    security:

       authorization: disabled 

    replication:

       oplogSizeMB: 100

       replSetName: sszh

       enableMajorityReadConcern: true

     

    mongo-27012.conf配置: 

    [root@localhost mongodb-4.4.2]# cat mongo-27012.conf

    systemLog:

       destination: file

       path: "/data/software/mongodb-4.4.2/27012/logs/mongodb.log"

       logAppend: true

    storage:

       dbPath: "/data/software/mongodb-4.4.2/27012/data"

       journal:

          enabled: true

    #   mmapv1:

    #     smallFiles: true

       wiredTiger:

          engineConfig:

            configString: cache_size=500m

    processManagement:

          fork: true

    net:

       port: 27012

       bindIp: 0.0.0.0

    setParameter:

       enableLocalhostAuthBypass: false

    # 开启授权认证

    security:

       authorization: disabled

     

    replication:

       oplogSizeMB: 100

       replSetName: sszh

       enableMajorityReadConcern: true 

    mongo-27013.conf 配置: 

    [root@localhost mongodb-4.4.2]# cat mongo-27013.conf

    systemLog:

       destination: file

       path: "/data/software/mongodb-4.4.2/27013/logs/mongodb.log"

       logAppend: true

    storage:

       dbPath: "/data/software/mongodb-4.4.2/27013/data"

       journal:

          enabled: true

    #   mmapv1:

    #     smallFiles: true

       wiredTiger:

          engineConfig:

            configString: cache_size=500m

    processManagement:

          fork: true

    net:

       port: 27013

       bindIp: 0.0.0.0

    setParameter:

       enableLocalhostAuthBypass: false

    # 开启授权认证

    security:

       authorization: disabled 

    replication:

       oplogSizeMB: 100

       replSetName: sszh

       enableMajorityReadConcern: true

    创建和修改启动服务shell脚本: 

    创建start-27011,start-27012,start-27013 shell启动脚本:

    touch /data/software/mongodb-4.4.2/start-27011 

    [root@localhost mongodb-4.4.2]# more start-27011

    /data/software/mongodb-4.4.2/bin/mongod --config /data/software/mongodb-4.4.2/mongo-27011.conf 

    touch /data/software/mongodb-4.4.2/start-27012 

    [root@localhost mongodb-4.4.2]# more start-27012

    /data/software/mongodb-4.4.2/bin/mongod --config /data/software/mongodb-4.4.2/mongo-27012.conf 

    touch /data/software/mongodb-4.4.2/start-27013

    [root@localhost mongodb-4.4.2]# more start-27013

    /data/software/mongodb-4.4.2/bin/mongod --config /data/software/mongodb-4.4.2/mongo-27013.conf 

    创建和修改停止服务shell脚本:

    touch /data/software/mongodb-4.4.2/stop-27011

    [root@localhost mongodb-4.4.2]# more stop-27011

    ps -ef|grep /data/software/mongodb-4.4.2/mongo-27011.conf|grep -v grep|awk '{printf $2}'|xargs kill -9 

    touch /data/software/mongodb-4.4.2/stop-27012

    [root@localhost mongodb-4.4.2]# more stop-27012

    ps -ef|grep /data/software/mongodb-4.4.2/mongo-27012.conf|grep -v grep|awk '{printf $2}'|xargs kill -9 

    touch /data/software/mongodb-4.4.2/stop-27013

    [root@localhost mongodb-4.4.2]# more stop-27013

    ps -ef|grep /data/software/mongodb-4.4.2/mongo-27013.conf|grep -v grep|awk '{printf $2}'|xargs kill -9 

    授权限:

    /data/software/mongodb-4.4.2文件夹和全部文件添加权限(生产环境需要酌情考虑是否开放外部权限):

    chmod -R 777 /data/software/mongodb-4.4.2/ 

    启动mongodb:

    [root@localhost mongodb-4.4.2]# pwd

    /data/software/mongodb-4.4.2 

    [root@localhost mongodb-4.4.2]# sh start-27011

    about to fork child process, waiting until server is ready for connections.

    forked process: 17307

    child process started successfully, parent exiting

    [root@localhost mongodb-4.4.2]# echo $?

    0

    [root@localhost mongodb-4.4.2]# sh start-27012

    {"t":{"$date":"2021-01-04T05:39:15.648Z"},"s":"I",  "c":"STORAGE",  "id":22293,   "ctx":"main","msg":"Engine custom option","attr":{"option":"cache_size=500m"}}

    about to fork child process, waiting until server is ready for connections.

    forked process: 17354

    child process started successfully, parent exiting

    [root@localhost mongodb-4.4.2]# sh start-27013

    about to fork child process, waiting until server is ready for connections.

    forked process: 17402

    child process started successfully, parent exiting 

    查看mongodb是否启动成功:出现如下所示,说明启动成功。

    [root@localhost mongodb-4.4.2]# ps -ef|grep mongo

    root     17307     1  0 00:38 ?        00:00:01 /data/software/mongodb-4.4.2/bin/mongod --config /data/software/mongodb-4.4.2/mongo-27011.conf

    root     17354     1  0 00:39 ?        00:00:01 /data/software/mongodb-4.4.2/bin/mongod --config /data/software/mongodb-4.4.2/mongo-27012.conf

    root     17402     1  0 00:39 ?        00:00:01 /data/software/mongodb-4.4.2/bin/mongod --config /data/software/mongodb-4.4.2/mongo-27013.conf

    root     17453 16723  0 00:42 pts/3    00:00:00 grep --color=auto mongo 

    添加集群节点:

    登录mongodb数据库:192.168.42.60:27011,具体登录命令如下:

    [root@localhost bin]# pwd

    /data/software/mongodb-4.4.2/bin 

    [root@localhost bin]# ./mongo --port=27012

    MongoDB shell version v4.4.2

    connecting to: mongodb://127.0.0.1:27012/?compressors=disabled&gssapiServiceName=mongodb

    Implicit session: session { "id" : UUID("00efb4f8-29e5-4595-b80e-abef7d619eb0") }

    MongoDB server version: 4.4.2

    Welcome to the MongoDB shell.

    For interactive help, type "help".

    For more comprehensive documentation, see

    https://docs.mongodb.com/

    Questions? Try the MongoDB Developer Community Forums

    https://community.mongodb.com

    ---

    The server generated these startup warnings when booting:

            2021-01-04T00:39:15.934-05:00: You are running this process as the root user, which is not recommended

            2021-01-04T00:39:15.934-05:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'

            2021-01-04T00:39:15.934-05:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'

            2021-01-04T00:39:15.934-05:00: Soft rlimits too low

            2021-01-04T00:39:15.934-05:00:         currentValue: 1024

            2021-01-04T00:39:15.934-05:00:         recommendedMinimum: 64000

    ---

    ---

            Enable MongoDB's free cloud-based monitoring service, which will then receive and display

            metrics about your deployment (disk utilization, CPU, operation statistics, etc).

            The monitoring data will be available on a MongoDB website with a unique URL accessible to you

            and anyone you share the URL with. MongoDB may use this information to make product

            improvements and to suggest MongoDB products and deployment options to you.

            To enable free monitoring, run the following command: db.enableFreeMonitoring()

            To permanently disable this reminder, run the following command: db.disableFreeMonitoring()

    ---

    > 

     

    登入后在 mongodb 命令行模式,执行 ’ > ’ 后面的命令:

    > use admin

    switched to db admin 

    > config={_id:"sszh", members:[{_id:0,host:'192.168.42.60:27011'}, {_id:1,host:'192.168.42.60:27012'}, {_id:2,host:'192.168.42.60:27013'}]};

    {

    "_id" : "sszh",

    "members" : [

    {

    "_id" : 0,

    "host" : "192.168.42.60:27011"

    },

    {

    "_id" : 1,

    "host" : "192.168.42.60:27012"

    },

    {

    "_id" : 2,

    "host" : "192.168.42.60:27013"

    }

    ]

    } 

     

    > rs.initiate(config)

    {

    "ok" : 1,

    "$clusterTime" : {

    "clusterTime" : Timestamp(1609739977, 1),

    "signature" : {

    "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

    "keyId" : NumberLong(0)

    }

    },

    "operationTime" : Timestamp(1609739977, 1)

    }

    sszh:SECONDARY>

    sszh:PRIMARY> rs.status()

    {

    "set" : "sszh",

    "date" : ISODate("2021-01-04T06:01:49.682Z"),

    "myState" : 1,

    "term" : NumberLong(1),

    "syncSourceHost" : "",

    "syncSourceId" : -1,

    "heartbeatIntervalMillis" : NumberLong(2000),

    "majorityVoteCount" : 2,

    "writeMajorityCount" : 2,

    "votingMembersCount" : 3,

    "writableVotingMembersCount" : 3,

    "optimes" : {

    "lastCommittedOpTime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "lastCommittedWallTime" : ISODate("2021-01-04T06:01:48.093Z"),

    "readConcernMajorityOpTime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "readConcernMajorityWallTime" : ISODate("2021-01-04T06:01:48.093Z"),

    "appliedOpTime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "durableOpTime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "lastAppliedWallTime" : ISODate("2021-01-04T06:01:48.093Z"),

    "lastDurableWallTime" : ISODate("2021-01-04T06:01:48.093Z")

    },

    "lastStableRecoveryTimestamp" : Timestamp(1609740108, 1),

    "electionCandidateMetrics" : {

    "lastElectionReason" : "electionTimeout",

    "lastElectionDate" : ISODate("2021-01-04T05:59:48.028Z"),

    "electionTerm" : NumberLong(1),

    "lastCommittedOpTimeAtElection" : {

    "ts" : Timestamp(0, 0),

    "t" : NumberLong(-1)

    },

    "lastSeenOpTimeAtElection" : {

    "ts" : Timestamp(1609739977, 1),

    "t" : NumberLong(-1)

    },

    "numVotesNeeded" : 2,

    "priorityAtElection" : 1,

    "electionTimeoutMillis" : NumberLong(10000),

    "numCatchUpOps" : NumberLong(0),

    "newTermStartDate" : ISODate("2021-01-04T05:59:48.053Z"),

    "wMajorityWriteAvailabilityDate" : ISODate("2021-01-04T05:59:48.994Z")

    },

    "members" : [

    {

    "_id" : 0,

    "name" : "192.168.42.60:27011",

    "health" : 1,

    "state" : 2,

    "stateStr" : "SECONDARY",

    "uptime" : 132,

    "optime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "optimeDurable" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "optimeDate" : ISODate("2021-01-04T06:01:48Z"),

    "optimeDurableDate" : ISODate("2021-01-04T06:01:48Z"),

    "lastHeartbeat" : ISODate("2021-01-04T06:01:48.159Z"),

    "lastHeartbeatRecv" : ISODate("2021-01-04T06:01:49.126Z"),

    "pingMs" : NumberLong(0),

    "lastHeartbeatMessage" : "",

    "syncSourceHost" : "192.168.42.60:27012",

    "syncSourceId" : 1,

    "infoMessage" : "",

    "configVersion" : 1,

    "configTerm" : 1

    },

    {

    "_id" : 1,

    "name" : "192.168.42.60:27012",

    "health" : 1,

    "state" : 1,

    "stateStr" : "PRIMARY",

    "uptime" : 1354,

    "optime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "optimeDate" : ISODate("2021-01-04T06:01:48Z"),

    "syncSourceHost" : "",

    "syncSourceId" : -1,

    "infoMessage" : "",

    "electionTime" : Timestamp(1609739988, 1),

    "electionDate" : ISODate("2021-01-04T05:59:48Z"),

    "configVersion" : 1,

    "configTerm" : 1,

    "self" : true,

    "lastHeartbeatMessage" : ""

    },

    {

    "_id" : 2,

    "name" : "192.168.42.60:27013",

    "health" : 1,

    "state" : 2,

    "stateStr" : "SECONDARY",

    "uptime" : 132,

    "optime" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "optimeDurable" : {

    "ts" : Timestamp(1609740108, 1),

    "t" : NumberLong(1)

    },

    "optimeDate" : ISODate("2021-01-04T06:01:48Z"),

    "optimeDurableDate" : ISODate("2021-01-04T06:01:48Z"),

    "lastHeartbeat" : ISODate("2021-01-04T06:01:48.159Z"),

    "lastHeartbeatRecv" : ISODate("2021-01-04T06:01:49.126Z"),

    "pingMs" : NumberLong(0),

    "lastHeartbeatMessage" : "",

    "syncSourceHost" : "192.168.42.60:27012",

    "syncSourceId" : 1,

    "infoMessage" : "",

    "configVersion" : 1,

    "configTerm" : 1

    }

    ],

    "ok" : 1,

    "$clusterTime" : {

    "clusterTime" : Timestamp(1609740108, 1),

    "signature" : {

    "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

    "keyId" : NumberLong(0)

    }

    },

    "operationTime" : Timestamp(1609740108, 1)

    }

    sszh:PRIMARY> 

    备注:

      use admin:使用admin数据库

      config={}:临时参数

      rs.initiate(config):使用config临时参数初始化副本集

      rs.status:查看集群状态

      members[0].stateStr:PRIMARY 表示主节点,SECONDARY表示从节点

      PRIMARY主节点:可读可写

      SECONDARY从节点:可读不可写

  • 相关阅读:
    USB子系统gadget analyse
    关于嵌入式的学习和职业发展
    编译JNI动态库so
    Linux串口编程
    i2c_get_clientdata和to_i2c_client 的使用获取平台设备
    Kbuild 编译系统分析
    解决QPST 出现的 "服务器正在运行" 的 下载错误.
    Msm 高通平台配置记录之一
    USB Skeleton driver 分析记录
    网站应用数据库相关 过滤类
  • 原文地址:https://www.cnblogs.com/renyongbin/p/14282100.html
Copyright © 2020-2023  润新知