mongodb 复制集添加新节点

mongodb 复制集添加新节点:
向已有的replica set 添加新成员,新加的成员可以是空的,当然也可以是从其他节点的数据拷贝,
添加新成员时,必须在新的机器上先起来一个mongodb服务,必须指出要加入的replica set 集群的名字基本语法如下(其他是默认的),然后再在replica set的master 库上执行添加操作,


删除原数据,该新成员是空的
cd /opt/mongodb/data
rm -rf  *

[root@gewa37 data]# more /etc/mongod.conf
storage:
    dbPath: "/opt/mongodb/data"
    journal:
        enabled: true
    directoryPerDB: true
    engine: "wiredTiger"
    wiredTiger:
        engineConfig:
            cacheSizeGB: 30


systemLog:
    logAppend: true
    destination: file
    path: "/opt/mongodb/log/mongodb.log"
processManagement:
    pidFilePath: "/opt/mongodb/log/mongo.pid"
    fork: true
net:
    port: 40001
    maxIncomingConnections: 5000


security:
    keyFile: "/opt/mongodb/mykey"
    authorization: "enabled"


replication:
    replSetName: "xxxxdb"
    oplogSizeMB: 1024


operationProfiling:
    slowOpThresholdMs: 200
    mode: "slowOp"




启动:
/usr/bin/mongod -f /etc/mongod.conf






新加入节点状态:
 rs.add("xxxxx.xxxxx.cn:40001");    
 rs.status();


  "_id" : 7,
                        "name" : "xxxx.xxxx.cn:40001",
                        "health" : 1,
                        "state" : 5,
                        "stateStr" : "STARTUP2",
                        "uptime" : 4,
                        "optime" : Timestamp(0, 0),
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2015-12-04T05:42:10.511Z"),
                        "lastHeartbeatRecv" : ISODate("2015-12-04T05:42:10.920Z"),
                        "pingMs" : 17,
                        "configVersion" : 24
                }
        ],




"stateStr" : "STARTUP2":不是正常的SECONDARY,同步完成后:
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),日期也是最初的日期
 "state" : 5, 




同步完成后状态:


                        "_id" : 7,
                        "name" : "xxxx.xxxx.cn:40001",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 2557,
                        "optime" : Timestamp(1449210279, 2),
                        "optimeDate" : ISODate("2015-12-04T06:24:39Z"),
                        "lastHeartbeat" : ISODate("2015-12-04T06:24:42.279Z"),
                        "lastHeartbeatRecv" : ISODate("2015-12-04T06:24:43.524Z"),
                        "pingMs" : 6,
                        "syncingTo" : "xxx39.xxxx.cn:40001",
                        "configVersion" : 24




日志中:重新同步数据过程:


2015-12-04T13:44:16.327+0800 I INDEX    [rsSync] build index done.  scanned 61 total records. 0 secs
2015-12-04T13:44:16.524+0800 I INDEX    [rsSync] build index on: gewampi.com.gewara.json.mpi.PlayItem_130376373 properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "gewampi.com.gewara.json.mpi.PlayItem_130376373" }
2015-12-04T13:44:16.524+0800 I INDEX    [rsSync]         building index using bulk method
2015-12-04T13:44:16.591+0800 I INDEX    [rsSync] build index done.  scanned 42 total records. 0 secs
2015-12-04T13:44:16.814+0800 I INDEX    [rsSync] build index on: gewampi.com.gewara.json.mpi.PlayItem_130376567 properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "gewampi.com.gewara.json.mpi.PlayItem_130376567" }
2015-12-04T13:44:16.814+0800 I INDEX    [rsSync]         building index using bulk method
2015-12-04T13:44:16.855+0800 I INDEX    [rsSync] build index done.  scanned 69 total records. 0 secs
2015-12-04T13:44:17.064+0800 I INDEX    [rsSync] build index on: gewampi.com.gewara.json.mpi.PlayItem_130377470 properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "gewampi.com.gewara.json.mpi.PlayItem_130377470" }
2015-12-04T13:44:17.064+0800 I INDEX    [rsSync]         building index using bulk method
2015-12-04T13:44:17.107+0800 I INDEX    [rsSync] build index done.  scanned 40 total records. 0 secs
2015-12-04T13:44:17.314+0800 I INDEX    [rsSync] build index on: gewampi.com.gewara.json.mpi.PlayItem_130377634 properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "gewampi.com.gewara.json.mpi.PlayItem_130377634" }
2015-12-04T13:44:17.314+0800 I INDEX    [rsSync]         building index using bulk method
2015-12-04T13:44:17.364+0800 I INDEX    [rsSync] build index done.  scanned 56 total records. 0 secs       






如何删除一个节点:
 rs.remove("gewa37.gewara.cn:40001");    
 除之后,如果退出再次进入gewa37上的mongodb,会发现提示符变为 STARTUP,已经停止应用日志但是不可写入:
 STARTUP> 






mongodb 复制集主节点切换方法


1。冻结其中的一个从节点,使其不参与到与primary 的内部选举工作
  进入客户端,执行(单位:秒)
  rs.freeze(30);


2.对原主节点进行降级
进入客户端,执行下面代码 (单位:秒)
rs.stepDown(15);
3.经过冻结和降级之后查看复制集状态 
rs.status();  
复制集顺利切换 






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/91975/viewspace-1853420/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/91975/viewspace-1853420/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值