2012-02-27 6 views
3

개발 서버에 5 노드 복제본을 설정했습니다. 우리는 개발자가 mongo db의 데이터 서브 세트를 백업하고이를 로컬 개발 환경에 복원 할 수있는 방법을 찾고 있습니다.Mongo db 부분 백업

우리는 clonedb 및 mongodump 유틸리티를 살펴 보았지만 둘 다 전체 데이터베이스의 백업/덤프 만 허용합니다. 가능한 데이터베이스 크기로 인해 백업 또는 복원되는 데이터를 제한 할 수있는 옵션이 필요합니다.

이것을 달성하기 위해 유틸리티 또는 방법을 알고 있습니까?

+1

당신은 거의 확실하게 자신의 도구를 작성해야합니다. 데이터가 어떻게 관련되어 있는지 모른 채 데이터의 하위 집합을 잡는 것은 매우 어렵습니다. 가장 최근 데이터의 단순한 덩어리로 살 수 있다고 확신하는 경우 모든 콜렉션을 반복하고 마지막 X 개의 레코드를 검색/저장하는 스크립트를 작성할 수 있습니다. –

답변

1

난 그냥 다시이 질문에 발견하고 우리가 옵트 우리의 백업 전략에 대한 설명을 추가하기로 결정 :이 설정 구성이 서버 DB 우리의 몽고에 대한

현재 백업 전략; 지연된 수동 2 차 노드를 통한 백업 및 mongodump를 이용한 일일 백업 (저널링 및 재생을 통해).

우리의 정상적인 생산 노드 외에도 우리는 다른 서버를 우선 순위 0으로 설정했습니다 (이것은 자체 서버에 있거나 다른 mongo 서버를 백업 할 수 있지만 별도의 포트를 사용합니다). 7200 초 (2 시간). 이 슬레이브는 "버터 손가락"을 위해 존재하는데 실수로 데이터베이스를 삭제하거나 컬렉션을 지우는 경우이 변경 사항이이 수동 보조에 복제되기까지 2 시간이 걸립니다. 수동 보조는 읽기 또는 쓰기를 위해 사용할 수 없습니다. 역할은 단순히 백업 노드입니다. 또한 야간 백업에이 노드를 사용하여 다른 노드에서 불필요한 오버 헤드를 방지합니다.

야간 백업은 매일 밤 23시에 cron 탭을 통해 실행되도록 설정됩니다. 이 명령은 /opt/auto-mongo-backup에서 스크립트 설정을 실행하기 만합니다. 이 스크립트는 https://github.com/jaconel/automongobackup (원래 https://github.com/micahwedemeyer/automongobackup에있었습니다)에서 찾을 수 있습니다. 이 스크립트는 매주 백업 및 월간 백업을 커버하는 단일 야간 cron을 허용합니다. 백업은 /var/backups/mongodb에 저장됩니다.

희망 사항은 도움이되기를 바랍니다.

+0

원래 질문에 흥미가 있었지만 대답이 전혀 아닙니다. 부분 데이터를 추출하기위한 도구를 직접 작성 했습니까? – maxdec

+0

mongoexport를 사용하여 특정 모음 만 내보내고 해당 모음의 결과를 쿼리로 제한 할 수도 있습니다. 해당 데이터를 복원하려면 mongoimport를 사용하여 컬렉션으로 다시 가져 오기 만하면됩니다. 업 서트를 사용하여 중복을 삽입하지 않도록하십시오. – j4kes