zoukankan      html  css  js  c++  java
  • 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从节点:可读不可写

  • 相关阅读:
    解决SharePoint 2010拒绝访问爬网内容源错误
    Sharepoint 2010 工作流状态值
    修改任务显示WrkTaskIp.aspx页面
    Infopath 2013 通过UserProfileService读取AD用户信息
    js验证
    .net中下载文件的方法(转)
    IIS限制ASP.Net 文件上传大小解决方案,修改IIS7/7.5配置
    SharePoint2013 SharePoint-Hosted 模式 分页方法
    技术QQ群
    react学习
  • 原文地址:https://www.cnblogs.com/renyongbin/p/14282100.html
Copyright © 2011-2022 走看看