Docs Menu
Docs Home
/
MongoDB Database Tools
/

mongorestore 동작, 액세스, 사용

이 페이지의 내용

  • 행동
  • 필요한 액세스 권한
  • 백업 전략에서의 사용
  • 자세히 알아보기

경고

필드에 $ 접두사가 있는 데이터 덤프 및 복원 충돌

MongoDB 5.0 부터 문서 필드 이름 앞에 달러 문자($)를 붙일 수 있습니다. 그러나 mongodumpmongorestore 은 컬렉션의 옵션에서 달러 문자 접두사가 붙은 필드 이름에서는 작동하지 않습니다.

MongoDB 확장 JSON (v2) 은 유형 래퍼와 유형 래퍼와 이름이 같은 필드를 구분할 수 없습니다. 해당 BSON 표현에 $ 접두사가 붙은 키가 포함될 수 있는 경우 확장 JSON 형식을 사용하지 마세요. DBRefs 메커니즘은 이 일반 규칙의 예외입니다.

mongorestore(을)를 사용하여 mongodump(으)로 생성된 데이터 파일을 로드하는 경우 소스 및 대상 배포의 MongoDB 버전은 다음 중 하나여야 합니다.

  • 동일한 주요 버전.

  • 동일한 기능 호환성 버전.

예를 들어 덤프가 버전 4.4을 실행하는 MongoDB deployment에서 생성된 경우, 복원하는 MongoDB deployment도 버전 4.4를 실행하거나 해당 FCV가 4.4로 설정되어 있어야 합니다.

기능 호환성 버전을 변경하려면 setFeatureCompatibilityVersion(을)를 참조하세요.

참고

mongodump에서 생성된 BSON 파일을 소스 배포와 동일하거나 더 최신 버전을 실행하는 MongoDB 배포로 복원할 수 있습니다. 그러나 파일을 최신 버전 배포로 복원하는 것은 배포를 업그레이드하는 권장 방법이 아닙니다. 배포를 업그레이드하는 방법을 알아보려면 업그레이드 문서를 참조하세요.

이 보장은 메타데이터, 아카이브 또는 oplog 리플레이 파일에는 적용되지 않습니다. 다른 소스 및 대상 배포 버전을 사용하여 이러한 파일을 복원하려고 하면 mongorestore 프로세스가 실패하거나, 조용히 실패하거나 메타데이터 손상이 발생할 수 있습니다.

또한 데이터 파일을 생성하는 데 사용한 mongodump 버전과 동일한 버전의 mongorestore를 사용하여 데이터 파일을 로드하고 있는지 확인하세요. 예를 들어 mongodump 버전 100.10.0를 사용하여 덤프를 생성한 경우 mongorestore 버전 100.10.0를 사용하여 복원합니다.

mongorestore 새 데이터베이스 를 만들거나 기존 데이터베이스 에 데이터를 추가할 수 있습니다. 그러나 mongorestore 는 삽입만 수행하고 업데이트는 수행하지 않습니다. 기존 데이터베이스 및 컬렉션 에 문서를 복원 하고 기존 문서에 복원 할 문서와 동일한 값의 _id 필드 가 있는 경우 mongorestore 는 해당 문서를 덮어쓰지 않습니다 .

기본값 으로 mongorestore 은 문서를 임의의 순서로 삽입할 수 있습니다. 복원 프로세스 중에 문서 순서를 유지하려면 --maintainInsertionOrder 를 사용합니다.

mongorestore 는 데이터를 복원한 후 mongodump에서 기록한 인덱스를 다시 생성합니다.

참고

featureCompatibilityVersion (fCV)가 "4.0" 이하로 설정된 MongoDB 설치의 경우 기존 문서의 인덱스 키가 제한을 초과하면 인덱스 생성에 오류가 발생합니다.

이 문제를 방지하려면 대신 해시 된 인덱스를 사용하거나 계산된 값을 인덱싱 하는 것이 좋습니다. 데이터를 복원한 후 인덱스 문제를 해결하려면 mongod 인스턴스의 failIndexKeyTooLong 매개 변수를 false로 설정하여 대상 데이터베이스 에서 기본값 인덱스 키 길이 유효성 검사 를 비활성화할 수 있습니다.

mongorestore system.profile 컬렉션 데이터를 복원하지 않습니다.

mongorestore FIPS 모드를 사용하도록 구성된 mongod/ mongos에 대한 FIPS 호환 연결을 자동으로 생성합니다.

--writeConcern 옵션과 --uri 연결 문자열 옵션 모두에서 쓰기 고려를 지정하면 --writeConcern 값이 URI 문자열에 지정된 쓰기 고려를 재정의합니다.

MongoDB 5.0부터 mongorestore를 사용하여 time series 컬렉션을 복원할 수 있습니다. 자세한 내용은 Time Series 컬렉션 복원을 참조하세요.

무료(M0) 및 공유(M2M5) 계층 Atlas 클러스터에는 다음과 같은 제한 사항이 적용됩니다.

  • admin 데이터베이스에서 mongorestore를 실행할 수 없습니다. 기본적으로 mongorestore는 이 데이터베이스를 건너뜁니다. --db 옵션을 사용하여 대상 데이터베이스를 admin으로 설정하면 프로그램에서 오류를 반환합니다.

  • mongorestore 프로그램에서 다음 옵션을 사용할 수 없습니다.

액세스 제어가 활성화된 MongoDB 배포로 데이터를 복원하려면 데이터에 system.profile 컬렉션 데이터가 포함되어 있지 않고 --oplogReplay 옵션 없이 mongorestore를 실행하는 경우 restore 역할은 백업에서 데이터를 복원하는 데 필요한 권한을 제공합니다.

백업 데이터에 system.profile 컬렉션 데이터가 포함되어 있거나 --oplogReplay 옵션을 사용하여 mongorestore를 실행하는 경우 추가 권한이 필요합니다.

system.profile

백업 데이터에 system.profile 컬렉션 데이터가 포함되어 있고 대상 데이터베이스에 system.profile 컬렉션이 포함되어 있지 않은 경우, mongorestore는 프로그램이 실제로 system.profile 문서를 복원하지 않더라도 컬렉션 생성을 시도합니다. 따라서 사용자는 데이터베이스의 system.profile 컬렉션에 대해 createCollectionconvertToCapped 작업을 수행하려면 추가 권한이 필요합니다.

기본 제공 역할 dbAdmindbAdminAnyDatabase는 모두 추가 권한을 제공합니다.

--oplogReplay

--oplogReplay로 실행하려면 anyResourceanyAction이 있는 사용자 정의 역할을 생성하세요.

--oplogReplaymongorestore를 실행해야 하는 사용자에게만 부여하세요.

백업 및 복구 전략의 일환으로 mongorestore 사용에 대한 개요는 MongoDB 도구를 사용하여 백업 및 복원을 참조하세요.

mongodumpmongorestore 를 샤드 클러스터의 백업 전략으로 사용하려면 데이터베이스 덤프를 사용하여 자체 관리형샤딩된 클러스터 백업을 참조하세요.

또한 샤드 클러스터는 다음과 같은 조정된 백업 및 복원 프로세스 중 하나를 사용할 수 있으며, 이는 쓰기를 계속 허용하면서 샤드 전체의 원자성을 보장합니다.

돌아가기

호환성 및 설치