我有一个ec2实例,mongo运行完美 . 我创建了ec2实例的快照并启动了一个新实例 . 在新实例上,问题是mongoDB数据库被破坏,因为配置不再有效 . 如何使用辅助副本集创建主要副本或以任何方式我可以解决此问题?以下是命令和输出:
[ec2-user@ip-10-0-2-224 ~]$ mongo
MongoDB shell version: 3.0.12
\connecting to: test
Server has startup warnings:
2018-02-04T23:01:26.503+0000 I CONTROL [initandlisten]
2018-02-04T23:01:26.503+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-02-04T23:01:26.503+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-02-04T23:01:26.503+0000 I CONTROL [initandlisten]
> rs.isMaster()
{
"ismaster" : false,
"secondary" : false,
"info" : "Does not have a valid replica set config",
"isreplicaset" : true,
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2018-02-04T23:14:04.473Z"),
"maxWireVersion" : 3,
"minWireVersion" : 0,
"ok" : 1
}
> rs.conf()
{
"_id" : "s-1",
"version" : 1,
"members" : [
{
"_id" : 0,
"host" : "ip-10-0-2-105:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : 0,
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatTimeoutSecs" : 10,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
}
}
}
> show dbs
2018-02-04T23:05:37.032+0000 E QUERY Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }
at Error (<anonymous>)
at Mongo.getDBs (src/mongo/shell/mongo.js:47:15)
at shellHelper.show (src/mongo/shell/utils.js:630:33)
at shellHelper (src/mongo/shell/utils.js:524:36)
at (shellhelp2):1:1 at src/mongo/shell/mongo.js:47
> rs.initiate()
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "ip-10-0-2-224:27017",
"info" : "try querying local.system.replset to see current configuration",
"ok" : 0,
"errmsg" : "already initialized",
"code" : 23
}
> rs.status()
{
"state" : 10,
"stateStr" : "REMOVED",
"uptime" : 2009,
"optime" : Timestamp(1517350533, 1),
"optimeDate" : ISODate("2018-01-30T22:15:33Z"),
"ok" : 0,
"errmsg" : "Our replica set config is invalid or we are not a member of it",
"code" : 93
}
>
唯一成员的主机地址实际上是我用于创建实例的服务器的主机地址 . 如果我发出“rs.slaveOk()”,它可以正常配置为辅助 .