mongoexport 또는 mongodump로 백업 하시겠습니까?


9

프로덕션 백업의 경우 MongoDB 는 데이터의 정확성을 위해 mongoexport 대신 mongodump 를 권장 합니다. 그러나 백업하기 전에 MongoDB 데이터베이스에서 데이터를 "스크럽"해야합니다. mongoexport 이외의 서버 측 데이터 스크러빙 옵션을 알 수 없습니다 . 두 가지 질문 :

  1. mongoexport 는 RAM의 MongoDB 캐시에 액세스 합니까 ? mongodump 처럼 RAM의 작업 세트를 변경 합니까?
  2. mongodump 명령에는이 --query 옵션 이 있습니다. "Mongodump의 출력에 포함 된 문서를 선택적으로 제한하는 쿼리로 JSON 문서를 제공합니다." 문서에서 특정 필드를 제외하려면 쿼리가 필요합니까?

1
백업이 아닌 내보내기를 찾고있는 것 같습니다. 필드의 하위 집합 만 내보내는 경우 해당 필드를 복원 할 수없고 완전히 작동 가능한 데이터베이스가있을 수 있습니다. 고려해야 할 몇 가지 다른 옵션이 있습니다. 일반 mongodump또는 파일 시스템 스냅 샷 백업을 수행하거나 mongoexport필요한 작업을 수행하지 않는 경우 사용자 지정 내보내기를 작성하기 위해 민감한 데이터로 응용 프로그램 코드를 사용하여 필드를 암호화 합니다. mongod내보낼 데이터가 사용 가능한 RAM보다 큰 경우 데이터를 읽는 도구 또는 프로그램이 작업 세트를 변경할 수 있습니다. 파일 시스템 스냅 샷의 성능이 저하됩니다
Stennie

설명해 주셔서 감사합니다. 필드의 암호화는 내가 생각하지 못한 것입니다. 좋은 제안입니다.
Howard Lee

답변:


6

첫 번째 질문에 대한 대답으로 두 도구 (기본적으로)는 _id색인을 따라 데이터를 가져 와서 디스크에 씁니다. 따라서 두 도구 모두 작업 세트에 비슷하게 영향을 미치므로 보조 도구 (가능한 경우 숨겨진 보조 도구)에 대해 실행하는 것이 좋습니다. 여기에 의견에 Stennie를 에코하고 많은 양의 데이터를 처리하는 경우 다른 백업 방법을 권장합니다.

두 번째 질문 mongodump의 경우 특정 필드 만 덤프 하는 --fields옵션 과 동일한 옵션을 찾고 있다고 가정 mongoexport합니다. 쿼리 옵션 필터 결과를 사용할 수 있지만이 투사 사용할 수 없습니다 (반환 된 필드를 선택) -이에 추적하는 기능 요청입니다 TOOLS-28 하지만 아직 예정되지 않습니다. Stennie도 언급했듯이, 여기에서 다른 옵션은 귀하의 요구에 맞는 사용자 정의 내보내기를 작성하는 것입니다 (다시, 작업 세트를 보호하기 위해 보조에 대해 실행하는 것이 좋습니다).


6
  1. (죄송합니다, 던노)

  2. --query 는 필드가 아닌 전체 문서를 선택하거나 제외합니다.

그래도 좋은 생각이 될 것입니다 :

--query '{datetime:{$gt:ISODate("2014-01-01T00:00:00.000Z")}},{_id:0,name:1,address:1,interests:1}'* )
  1. Mongodump 는 bson 파일 구조를 사용 하고 데이터 유형을 보존합니다 . Mongoexport값의 데이터 유형을 잃게됩니다 . NumberLong ( "1431677405876")과 같이 1431677405876로 변환됩니다. 따라서 MongoDB로 다시 가져와야 할 경우 mongodump가 권장됩니다.

--query에 대한 설명과 mongoexport loss 데이터 형식의 예에 감사드립니다.
Howard Lee

0

Mongoexport는 실제로 유형을 유지하지만 데이터가 일치하지 않습니다. Ints와 Longs를 사용하여 필드를 내보내는 경우 필드를 각각 Numbers와 JSON 개체로 내 보내서 더 어려워 질 수 있습니다.

"엄격한 모드. BSON 유형의 엄격한 모드 표현은 JSON RFC를 준수합니다. 모든 JSON 구문 분석기는 이러한 엄격한 모드 표현을 키 / 값 쌍으로 구문 분석 할 수 있지만 MongoDB 내부 JSON 구문 분석기 만 형식으로 전달 된 유형 정보를 인식합니다."

https://docs.mongodb.com/manual/reference/mongodb-extended-json/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.