AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

mongorestore 동작, 액세스, 사용

경고

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

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

MongoDB 확장 JSON (v)은(는)2 유형 래퍼와 유형 래퍼와 이름이 같은 필드를 구분할 수 없습니다. 해당 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를 사용하여 데이터 파일을 로드하고 있는지 확인하세요. 실제로는 다른 버전의 mongorestore를 사용해도 괜찮지만, 버전 간에 덤프 형식이 변경되면 복원 실패하거나 데이터가 잘못 복원 수 있습니다. 예시 를 들어 mongodump 버전 100.19.0를 사용하여 덤프를 생성하는 경우, mongorestore 버전 100.19.0을 사용하여 복원 .

참고

이 규칙의 예외로 MongoDB 9.0 배포서버 에서 덤프된 데이터를 Atlas Infinite Database 클러스터 로 복원 할 수 있습니다. Atlas Infinite Database 클러스터 에서 덤프된 데이터를 MongoDB 9.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 컬렉션 복원을 참조하세요.

MongoDB 8.x 및 MongoDB 9.0은 시계열 컬렉션을 다른 형식으로 저장합니다.

  • MongoDB 8.x에서 time series 컬렉션 뷰와 별도의 system.buckets.<collection> 컬렉션 으로 구성됩니다.

  • MongoDB 9.0부터 time series 컬렉션은 단일 컬렉션입니다.

를 setFeatureCompatibilityVersion 사용하여 이 경계를 넘어 기능 호환성 버전 (FCV)을 변경하면 서버 각 time series 컬렉션 새 FCV 와 일치하는 형식으로 변환합니다. 서버 모든 전환을 oplog 에 기록합니다.

각 변환은 버킷 쓰기가 대상으로 하는 네임스페이스를 system.buckets.<collection>에서 <collection>로 변경합니다. 변환 전에 기록된 oplog 엔트리는 다음에 오는 컬렉션 형식과 일치하지 않습니다.

그 결과 mongorestore는 변환을 스팬하는 oplog 범위를 재생할 수 없습니다. 변환의 각 측의 엔트리를 별도 범위로 복원하고 두 복원 사이의 타겟 배포서버에서 기능 호환성 버전을 변경합니다.

1

--oplogLimit를 사용하여 변환 전에 재생을 중지합니다.

2

타겟에서 를 실행하여 변환을 생성한 동일한 방향으로 동일한 FCV 변경합니다.setFeatureCompatibilityVersion

3

대상에서는 기능 호환성 버전 변경이 필요합니다. mongorestore은 FCV를 절대 변경하지 않으며 변환 시 네임스페이스를 다시 쓰지 않습니다. 복원 두 개에 대해 타겟이 하나의 기능 호환성 버전(FCV)에 머물러 있는 경우 두 번째 범위의 엔트리는 타겟의 컬렉션 형식과 일치하지 않는 네임스페이스의 이름을 지정합니다. 그러면 복원이 실패합니다.

Starting in Database Tools 100.18.0, mongorestore는 --oplogReplay 중에 변환이 발생하면 이름을 지정하는 메시지와 함께 실패합니다. 이전 버전의 Database Tools 대신 알 수 없는 oplog 명령을 보고합니다.

mongodump --oplog가 실행되는 동안 FCV를 변경하지 마십시오. 그렇지 않으면 복원할 수 없는 덤프가 생성됩니다. mongodump --db=local --collection=oplog.rs로 oplog를 직접 캡처하고 --oplogFile로 리플레이하면 mongodump은 기능 호환성 버전 변경을 감지할 수 없으므로 복원하는 범위가 변환을 스팬하지 않는지 확인하십시오.

무료(M0) 및 Flex 클러스터에는 다음과 같은 제한 사항이 적용.

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

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

Atlas Infinite Database 클러스터 로 복원 경우 mongorestore 프로그램에서 다음 옵션을 사용할 수 없습니다.

이 제한은 덤프가 MongoDB 9.0(비Atlas Infinite 데이터베이스) 또는 Atlas Infinite Database 클러스터 에서 제공되는지 여부에 관계없이 적용됩니다.

mongorestore 가 충돌하면 시스템이 불일치 상태에 노출될 수 있으며, 데이터 중 일부만 복원되고 모든 데이터는 복원되지 않을 수 있습니다. 충돌 후에는 복원된 데이터를 삭제하고 과정을 처음부터 다시 실행합니다.

참고

대상 클러스터 롤백

복원 프로세스 중에 클러스터 롤백 되면 복원되거나 가져온 데이터를 모두 삭제 하고 프로세스 처음부터 다시 실행합니다. 자세한 내용은 롤백 문서를 참조하세요.

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

참고

대상 클러스터 가 MongoDB Atlas cluster 인 경우 대신 역할 Atlas admin 필요합니다. MongoDB Atlas 개별 restore 역할, 권한 또는 권한 조치 제공하지 않습니다. 자세한 학습 은 데이터베이스 사용자 구성을 참조하세요.

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

system.profile

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

내장 역할 dbAdmin 및 dbAdminAnyDatabase 는 모두 추가 권한을 제공합니다.

--oplogReplay

로 실행 하려면 anyResource에 --oplogReplay anyAction 가 있는 사용자 정의 역할 만듭니다.

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

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

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

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