生产环境的一套MongoDB发生故障,其中一个config节点的磁盘损坏。
修复流程如下:
修复流程如下:
- # 登录到config库,查看config的节点状态
- # 可以看到_id为2的节点状态是不可访问的
- [root@mongos-mq ~]# /opt/mongodb-linux-x86_64-3.2.10/bin/mongo --port 10000
- MongoDB shell version: 3.2.10
- connecting to: 127.0.0.1:10000/test
- config_rs:PRIMARY> use admin
- switched to db admin
- config_rs:PRIMARY> db.auth("root", "xxx")
- 1
- config_rs:PRIMARY> rs.status()
- {
- "set" : "config_rs",
- "date" : ISODate("2018-05-30T04:53:21.081Z"),
- "myState" : 1,
- "term" : NumberLong(1),
- "configsvr" : true,
- "heartbeatIntervalMillis" : NumberLong(2000),
- "members" : [
- {
- "_id" : 0,
- "name" : "192.168.210.208:10000",
- "health" : 1,
- "state" : 1,
- "stateStr" : "PRIMARY",
- "uptime" : 1112804,
- "optime" : {
- "ts" : Timestamp(1527656000, 1),
- "t" : NumberLong(1)
- },
- "optimeDate" : ISODate("2018-05-30T04:53:20Z"),
- "electionTime" : Timestamp(1526543249, 2),
- "electionDate" : ISODate("2018-05-17T07:47:29Z"),
- "configVersion" : 3,
- "self" : true
- },
- {
- "_id" : 1,
- "name" : "192.168.210.209:10000",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 1111358,
- "optime" : {
- "ts" : Timestamp(1527656000, 1),
- "t" : NumberLong(1)
- },
- "optimeDate" : ISODate("2018-05-30T04:53:20Z"),
- "lastHeartbeat" : ISODate("2018-05-30T04:53:20.836Z"),
- "lastHeartbeatRecv" : ISODate("2018-05-30T04:53:19.329Z"),
- "pingMs" : NumberLong(0),
- "syncingTo" : "192.168.210.208:10000",
- "configVersion" : 3
- },
- {
- "_id" : 2,
- "name" : "192.168.210.207:10000",
- "health" : 0,
- "state" : 8,
- "stateStr" : "(not reachable/healthy)",
- "uptime" : 0,
- "optime" : {
- "ts" : Timestamp(0, 0),
- "t" : NumberLong(-1)
- },
- "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
- "lastHeartbeat" : ISODate("2018-05-30T04:53:20.850Z"),
- "lastHeartbeatRecv" : ISODate("2018-05-26T09:07:27.318Z"),
- "pingMs" : NumberLong(0),
- "lastHeartbeatMessage" : "Connection refused",
- "configVersion" : -1
- }
- ],
- "ok" : 1
- }
-
- # 在故障节点上面重新安装MongoDB,创建数据文件目录
- [root@tomcat-207 opt]# tar xfz mongodb-linux-x86_64-3.2.10.tgz
- [root@tomcat-207 opt]# mkdir -p /data/mongodb_data/config_rs1_10000
-
- # 配置参数文件
- [root@tomcat-207 opt]# cat /etc/mongodb/config_rs1_10000.conf
- systemLog:
- destination: file
- path: /data/mongodb_data/config_rs1_10000/mongod.log
- processManagement:
- fork: true
- net:
- bindIp: 0.0.0.0
- port: 10000
- security:
- keyFile: /data/mongodb_data/keyfile
- storage:
- dbPath: /data/mongodb_data/config_rs1_10000
- directoryPerDB: true
- operationProfiling:
- slowOpThresholdMs: 100
- mode: slowOp
- replication:
- replSetName: config_rs
- sharding:
- clusterRole: configsvr
-
- # 从其他config节点拷贝过来keyfile文件
- [root@mongos-mq opt]# scp /data/mongodb_data/keyfile root@192.168.210.207:/data/mongodb_data/
-
- # 启动Mongo
- [root@mongos-mq opt]# /opt/mongodb-linux-x86_64-3.2.10/bin/mongod -f /etc/mongodb/config_rs1_10000.conf
- about to fork child process, waiting until server is ready for connections.
- forked process: 3744
- child process started successfully, parent exiting
-
- # 查看config节点状态
- # 所有的config节点都恢复正常
- config_rs:PRIMARY> rs.status()
- {
- "set" : "config_rs",
- "date" : ISODate("2018-05-30T05:29:40.103Z"),
- "myState" : 1,
- "term" : NumberLong(1),
- "configsvr" : true,
- "heartbeatIntervalMillis" : NumberLong(2000),
- "members" : [
- {
- "_id" : 0,
- "name" : "192.168.210.208:10000",
- "health" : 1,
- "state" : 1,
- "stateStr" : "PRIMARY",
- "uptime" : 1114983,
- "optime" : {
- "ts" : Timestamp(1527658178, 4),
- "t" : NumberLong(1)
- },
- "optimeDate" : ISODate("2018-05-30T05:29:38Z"),
- "electionTime" : Timestamp(1526543249, 2),
- "electionDate" : ISODate("2018-05-17T07:47:29Z"),
- "configVersion" : 3,
- "self" : true
- },
- {
- "_id" : 1,
- "name" : "192.168.210.209:10000",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 1113537,
- "optime" : {
- "ts" : Timestamp(1527658178, 4),
- "t" : NumberLong(1)
- },
- "optimeDate" : ISODate("2018-05-30T05:29:38Z"),
- "lastHeartbeat" : ISODate("2018-05-30T05:29:39.535Z"),
- "lastHeartbeatRecv" : ISODate("2018-05-30T05:29:39.941Z"),
- "pingMs" : NumberLong(0),
- "syncingTo" : "192.168.210.208:10000",
- "configVersion" : 3
- },
- {
- "_id" : 2,
- "name" : "192.168.210.207:10000",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 1588,
- "optime" : {
- "ts" : Timestamp(1527658178, 4),
- "t" : NumberLong(1)
- },
- "optimeDate" : ISODate("2018-05-30T05:29:38Z"),
- "lastHeartbeat" : ISODate("2018-05-30T05:29:39.535Z"),
- "lastHeartbeatRecv" : ISODate("2018-05-30T05:29:39.691Z"),
- "pingMs" : NumberLong(0),
- "syncingTo" : "192.168.210.209:10000",
- "configVersion" : 3
- }
- ],
- "ok" : 1
- }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26506993/viewspace-2155380/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26506993/viewspace-2155380/