반응형
직접 관리하던 MongoDB 데이터베이스의 관리상의 어려움(용량 초과 등)이 있어서 MongoDB altas로 이전하려고 작업을 진행중인데, docker로 replica set이 설정된 상태로 서버를 생성했다가 지웠다가 하니까 상태가 Other로 바뀌어버렸다.
rs0:OTHER> rs.status()
{
"state" : 10,
"stateStr" : "REMOVED",
"uptime" : 97,
"optime" : {
"ts" : Timestamp(1653792432, 1),
"t" : NumberLong(2)
},
"optimeDate" : ISODate("2022-05-29T02:47:12Z"),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"ok" : 0,
"errmsg" : "Our replica set config is invalid or we are not a member of it",
"code" : 93,
"codeName" : "InvalidReplicaSetConfig"
}
rs0:OTHER> rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "0f414bfe12da:27017",
"info" : "try querying local.system.replset to see current configuration",
"ok" : 0,
"errmsg" : "already initialized",
"code" : 23,
"codeName" : "AlreadyInitialized"
}
Replica Set Status가 REMOVED인걸 보아서는 뭔가 꼬인것 같아서, Replica Set을 다시 설정하려고 rs.initiate()를 입력해도 이미 초기화된 상태라면서 설정이 안된다.
해결 방법
1. mongod를 replica set이 없도록 다시 실행해준다.
2. 아래 명령어로 replica set 데이터를 날린다.
use local
db.dropDatabase()
3. 다시 replica set이 있도록 실행한다.
4. replica set을 초기화한다.
> rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "d09f14b6f8c3:27017",
"ok" : 1
}
rs0:SECONDARY>
이제 잘 된다!
참고
반응형