MongoDB 에서 색인 생 성 시 주의사항

지난주 ruby-china 에'MongoDB 그 구덩이 들'라 는 글 이 올 라 왔 습 니 다.반응 이 뜨 겁 고 많은 답변 이 눈 에 띄 었 습 니 다.그 중에서 한 어린이 신발 은 MongoDB 의 색인 작성 방법 에 대한 문 제 를 깊이 언급 하여 저 는 MongoDB 가 색인 을 만 드 는 방법 과 주의사항 을 더욱 깊이 알 게 되 었 습 니 다.
에서 안내 데스크 에서 색인 만 들 기 명령 을 직접 실행 하면 전체 데이터 베 이 스 를 차단 할 수 있 으 므 로 색인 은 background 방식 으로 만 드 는 것 을 권장 합 니 다.그러나 이것 도 일정한 문 제 를 가 져 올 수 있다.2.6 버 전에 서 secondary server 에서 background 방식 으로 색인 을 만 들 더 라 도 secondary 는 foreground 방식 으로 색인 을 만 들 고 secondary 역시 데이터 베 이 스 를 차단 하 는 문 제 를 일 으 킬 수 있다.2.6 버 전 은 이 버그 를 복 구 했 습 니 다.2.6 버 전 이후 background 방식 으로 색인 을 만 들 때 배경 으로 돌아 가 실 행 됩 니 다.
색인 생 성 이 MongoDB 서버 에 미 치 는 영향 을 최소 화하 기 위해 서 는 MongoDB 서버 를 standalone 모드 로 변환 해 만 드 는 방법 이 있다.구체 적 인 방법 은 다음 과 같다.
1.먼저 secondary server 를 중단 하고--replset 인 자 를 취소 하고 MongoDB port 를 변경 한 후에 MongoDB 를 다시 시작 합 니 다.이때 MongoDB 는 standalone 모드 에 들 어 갑 니 다.
2.standalone 모드 에서 명령 ensureIndex 를 실행 하여 색인 을 만 들 고 foreground 방식 으로 실행 하 는 것 을 권장 합 니 다.
3.색인 을 만 든 후 secondary server 를 닫 고 정상 적 인 방식 으로 시작 합 니 다.
4.상기 1~3 단계 에 따라 secondary 로 돌아 가면 서 색인 을 만 들 고,마지막 으로 primary server 를 secondary server 로 임시 변환 하 며,마찬가지 로 1~3 의 방법 으로 색인 을 만 든 다음 primary server 로 변환 합 니 다.
이런 방식 은 비교적 번 거 롭 지만 색인 작성 작업 이 MongoDB 에 미 치 는 영향 을 최소 화 할 수 있어 서 어떤 경우 에는 할 만하 다.

좋은 웹페이지 즐겨찾기