ReplicaSet으로 sharding 구성된 MongoDB 클러스터를 올렸다 내렸다 하다가,
어느 순간 shell 명령어가 안먹히는것이었다.
물론 어플리케이션에서도.
shell에서 에러메세지는 setShardVersion failed 어쩌고 뭐 old version 이라느니 하는 메세지가 나왔고,
로그파일을 뒤져보니 SyncClusterConnection, assertion: "unauthorized db:admin lock type:1" 뭐 이딴식이었다. (db 이름은 그때그때 다를 수 있다)
여튼 난 손도 안댔는데(!) 지 혼자 저러고 있는 걸 보니 안타깝기도 하고,
그걸 어떻게 해보려는 내 모습이 안타깝기도 했는데,
결론은 아래와 같은 형태로 정상동작 시킬 수 있었던 것이다.
1. 전체 클러스터 shutdown
2. auth를 off한 상태에서 재시작
3. 각 ReplicaSet을 구성하는 mongod에 접속하여 user 추가
4. auth를 on한 상태로 전체 클러스터 재시작
db.repairDatabase()도 해봤었고 뭐 이것저것 한 상황이라 잘은 모르지만 여튼 저게 주효했던 것 같다.
정확한 원인은 모르겠다...-_-
'DataBase' 카테고리의 다른 글
[MongoDB] 기존 collection sharding 조건 (0) | 2012.04.04 |
---|---|
[MongoDB] query 실행중단 (abort query execute) (0) | 2012.03.30 |
[PostgreSQL] 필드가 존재하는지 체크 (field exist) (0) | 2011.08.08 |
[PostgreSQL] query로 테이블 존재여부 판단 (0) | 2011.06.23 |
[SQLite] 테이블 리스트 보기 (show tables) (2) | 2010.11.16 |