mongorestore 동작, 액세스, 사용
이 페이지의 내용
경고
필드에 $ 접두사가 있는 데이터 덤프 및 복원 충돌
MongoDB 5.0 부터 문서 필드 이름 앞에 달러 문자($
)를 붙일 수 있습니다. 그러나 mongodump
및 mongorestore
은 컬렉션의 옵션에서 달러 문자 접두사가 붙은 필드 이름에서는 작동하지 않습니다.
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로 설정하여 대상 데이터베이스 에서 기본값 인덱스 키 길이 유효성 검사 를 비활성화할 수 있습니다.
컬렉션제외 system.profile
mongorestore
system.profile
컬렉션 데이터를 복원하지 않습니다.
FIPS
mongorestore
FIPS 모드를 사용하도록 구성된 mongod
/ mongos
에 대한 FIPS 호환 연결을 자동으로 생성합니다.
쓰기 고려
--writeConcern
옵션과 --uri
연결 문자열 옵션 모두에서 쓰기 고려를 지정하면 --writeConcern
값이 URI 문자열에 지정된 쓰기 고려를 재정의합니다.
Time Series 컬렉션
MongoDB 5.0부터 mongorestore
를 사용하여 time series 컬렉션을 복원할 수 있습니다. 자세한 내용은 Time Series 컬렉션 복원을 참조하세요.
Atlas 무료 및 공유 계층 클러스터에서사용 mongorestore
무료(M0
) 및 공유(M2
및 M5
) 계층 Atlas 클러스터에는 다음과 같은 제한 사항이 적용됩니다.
admin
데이터베이스에서mongorestore
를 실행할 수 없습니다. 기본적으로mongorestore
는 이 데이터베이스를 건너뜁니다.--db
옵션을 사용하여 대상 데이터베이스를admin
으로 설정하면 프로그램에서 오류를 반환합니다.mongorestore
프로그램에서 다음 옵션을 사용할 수 없습니다.
필요한 액세스 권한
액세스 제어가 활성화된 MongoDB 배포로 데이터를 복원하려면 데이터에 system.profile
컬렉션 데이터가 포함되어 있지 않고 --oplogReplay
옵션 없이 mongorestore
를 실행하는 경우 restore
역할은 백업에서 데이터를 복원하는 데 필요한 권한을 제공합니다.
백업 데이터에 system.profile
컬렉션 데이터가 포함되어 있거나 --oplogReplay
옵션을 사용하여 mongorestore
를 실행하는 경우 추가 권한이 필요합니다.
system.profile | 백업 데이터에 기본 제공 역할 |
--oplogReplay |
|
백업 전략에서의 사용
독립형/복제본 세트
백업 및 복구 전략의 일환으로 mongorestore
사용에 대한 개요는 MongoDB 도구를 사용하여 백업 및 복원을 참조하세요.
샤딩된 클러스터
mongodump
및 mongorestore
를 샤드 클러스터의 백업 전략으로 사용하려면 데이터베이스 덤프를 사용하여 자체 관리형샤딩된 클러스터 백업을 참조하세요.
또한 샤드 클러스터는 다음과 같은 조정된 백업 및 복원 프로세스 중 하나를 사용할 수 있으며, 이는 쓰기를 계속 허용하면서 샤드 전체의 원자성을 보장합니다.