mongodb 증분 백업 스 크 립 트 의 실현 과 원리 에 대한 상세 한 설명

머리말
mongodb 의 던 전 집합 구조,메 인 라 이브 러 리 와 라 이브 러 리 의 데이터 가 일치 합 니 다.메 인 라 이브 러 리 의 기계 가 고장 나 면 괜 찮 습 니 다.라 이브 러 리 에 똑 같은 던 전 데이터 가 있 습 니 다.그러나 누군가가 악의 적 으로 조작 하거나 조작 을 잘못 하면 한꺼번에 라 이브 러 리 전 체 를 대량으로 삭제 하거나 drop 하면 메 인 라 이브 러 리 와 라 이브 러 리 에서 의 데이터 가 없어 큰 손실 을 입 을 수 있다.따라서 몬 godb 데이터 베 이 스 를 정기 적 으로 백업 하 는 것 이 중요 하 다.백업 을 매번 전량 백업 하면 많은 시간 이 소모 되 고 mongodb 성능 에 도 영향 을 미 치 므 로 증분 백업 이 필요 합 니 다.mongodb 의 증분 백업 네트워크 에는 이미 만들어 진 도구 가 없 기 때문에 자세히 연구 하여 스 크 립 트 를 썼 다.
mongodb 클 러 스 터 를 구성 할 때 라 이브 러 리 에서 메 인 라 이브 러 리 의 Oplog 파일 을 비동기 로 복사 하여 메 인 라 이브 러 리 와 동기 화 합 니 다.
Oplog 는 MongoDB 데이터베이스 의 변경 작업 정 보 를 기록 하 였 으 며,local 라 이브 러 리 에 저 장 된 oplog.rs 표 는 클 러 스 터 구조 에 만 존재 하 며,단일 컴퓨터 에 없 기 때문에 증분 백업 은 단일 컴퓨터 에서 사용 할 수 없습니다.oplog 는 크기 제한 이 있 습 니 다.지정 한 크기 를 초과 하면 새로운 기록 은 오래된 작업 기록 을 덮어 씁 니 다.

mongodb 증분 백업 원리
어떻게 하면 한동안 oplog 를 다운로드 할 수 있 습 니까?제 가 맞 춘 예 는:

mongodump -h 127.0.0.1 --port 27117 -d local -c oplog.rs -u admin -p xxx --authenticationDatabase admin -q '{ts:{$gt:{$timestamp:{t:1451355000,i:1}},$lt:{$timestamp:{t:1451357430,i:1}}},ns:/^test_db\\./}' -o oplog_backup
위 는 1451355000-1451357430 시간 사이 의 oplog 를 내 보 냅 니 다.oplog 를 내 보 내 려 면 admin 권한 계 정 으로 전환 해 야 합 니 다.
원 리 는 간단 하지만 구체 적 으로 실현 하려 면 많은 고려 가 필요 하 다.코드 를 구체 적 으로 봐 야 한다.스 크 립 트 는 주기 적 으로(예 를 들 어 일주일)전체 데이터 베 이 스 를 백업 하고 그 다음 에 매번 증분 백업 을 합 니 다.스 크 립 트 주소:http://git.oschina.net/passer/mongodb_backup_script
증분 스 크 립 트 실행 시 프로 세 스
  • 이전 주기 실행 정 보 를 읽 고 새로운 주 기 를 만들어 야 하 는 지 판단 합 니 다
  • mongodb 에서 oplog 가 최근 기록 한 시간 대 current timestamp position
  • 획득
  • 이전 실행 시 mongodb 의 oplog 시간
  • 을 로 컬 에서 읽 습 니 다.
  • dump 는 전체 데이터 나 증분 oplog 파일 을 로 컬 로 내 보 냅 니 다.증분 oplog 파일 의 내 보 내기 범 위 는 지난번 oplog 기록 점 에서 최신 시간 까지 의 oplog 파일
  • 입 니 다.
  • 저장 단계 2 에서 가 져 온 current timestamp position 을 로 컬 로 저장 하여 다음 실행 단계 3 의 시간 점
  • 압축
  • oss 에 업로드
  • 로 컬 백업 파일 삭제
  • 전체 스 크 립 트 실행 프로 세 스
  • mongodb 데이터 베 이 스 를 로 컬 로 백업
  • 압축
  • oss 에 업로드
  • oss 와 로 컬 파일 의 크기 가 같 는 지 확인 하기
  • 로 컬 백업 파일 삭제
  • 복구 시 스 크 립 트 실행 프로 세 스
  • oss 에서 지정 한 주기의 백업 파일 을 로 컬 로 다운로드
  • 전체 파일 과 증분 oplog 의 zip 파일 을 압축 해제 합 니 다
  • mongorestore 로 전체 파일 가 져 오기
  • mongorestore-oplog Replay 로 시간 대별 oplog 파일 가 져 오기
  • 총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기