단일 데이터베이스 또는 컬렉션 복원
이 페이지의 내용
- Cloud Manager 에 대한 프로그래밍 방식의 액세스 를 위한 OAuth 2.0 인증 은 Preview 기능 으로 제공됩니다.
- 기능 및 해당 설명서는 미리 보기 기간에 언제든지 변경될 수 있습니다. OAuth 2.0 인증 을 사용하려면 Cloud Manager 공개 API 에 대한 요청에 사용할서비스 계정을 만듭니다.
스냅샷에서 단일 데이터베이스 또는 컬렉션(또는 특정 문서)을 복원하려면 쿼리 가능 백업 사용하여 대상 배포서버로 복원할 단일 데이터베이스 또는 컬렉션을 내보낼 수 있습니다.
고려 사항
복원을 시도하기 전에 대상 배포의 호스트에 복원 파일 및 복원된 데이터베이스를 위한 충분한 스토리지 공간과 데이터 세트 확장을 위한 추가 공간이 있는지 확인합니다. db.stats()를 사용하여 현재 데이터베이스 크기를 찾습니다.
중요
MongoDB Database Tools의 최신 버전을 사용하세요. 여기에는 mongodump
및 mongorestore
가 포함됩니다. 최신 버전의 mongosh
를 사용합니다.
이전 버전의 mongodump
에는 컬렉션 옵션의 키가 잘못된 순서로 덤프될 수 있는 문제가 포함되어 있습니다. 자세한 내용은 TOOLS-3411 를 참조하세요.
쿼리 가능 백업에서 데이터베이스 또는 컬렉션 복원
쿼리 가능한 백업 스냅샷을 사용하여 데이터베이스 또는 컬렉션의 데이터를 내보내고 대상 배포로 복원할 수 있습니다. 다음 절차는 Cloud Manager에서 제공하는 터널 [1]을 통해 쿼리 가능한 백업 인스턴스에 연결합니다.
보기로 고 Backup(Go) 하여 Overview 탭 을 클릭합니다.
백업을 쿼리하려는 배포서버의 경우 Options 열 아래를 클릭한 다음 Query를 선택합니다.
배포서버를 클릭하여 스냅샷을 확인하고 Actions 열 아래에 있는 Query 버튼을 클릭할 수도 있습니다.
쿼리 가능한 스냅샷에 대한 백업 터널을 엽니다.
쿼리할 스냅샷을 선택하고 Next을 클릭합니다.
Start 스냅샷을 쿼리하는 프로세스. 2단계 인증을 요청하는 메시지가 표시됩니다.
쿼리 가능 스냅샷에 대한 연결 방법으로 Backup Tunnel을 선택합니다. [1]
플랫폼을 선택하고 다운로드합니다.
다운로드한 파일의 압축을 풉니다.
참고
계속하기 전에 쿼리 가능 스냅샷이 마운트될 때까지 기다립니다. 스냅샷 마운트 시간은 스냅샷 의 크기에 따라 달라집니다. 스냅샷 이 마운트되었는지 확인하려면 다음을 수행합니다.
MongoDB Cloud Manager 에서 프로젝트 의 Continuous Backup 페이지로 Go 합니다.
이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
사이드바에서 Continuous Backup를 클릭합니다.
연속 백업 페이지가 표시됩니다.
0}Restore History 탭을 선택합니다.
스냅샷 이 마운트되면 Status 열에 마운트 작업의 날짜와 시간이 보고됩니다.
터미널 또는 명령 프롬프트를 열고 압축되지 않은 <tunnel> 디렉토리로 이동합니다. 실행 파일을 실행하여 터널을 시작합니다.
터널의 기본 포트는
27017
입니다. 포트를 변경하려면 다음 예와 같이--local
플래그를 사용합니다../<tunnel executable> --local localhost:27020 참고
포트를 변경하는 경우에는 연결 시 포트 정보를 반드시 포함시켜야 합니다.
mongodump
쿼리 가능 백업 에서 단일 데이터베이스 또는 컬렉션 을 내보내려면 를 사용합니다.
- 데이터베이스의 데이터를 내보내려면 다음을 수행합니다.
터널[1]에 연결하려면 다음
mongodump
옵션을 포함하세요.--port
터널의 포트로 설정--db
내보낼 데이터베이스의 이름으로 설정--out
를 빈 디렉토리로 설정하여 데이터 덤프를 출력합니다.중요
mongodump
를 실행하는 사용자가 지정된 디렉토리에 쓰기를 수행할 수 있도록 하세요.
mongodump --port <port for tunnel> --db <single-database> --out <data-dump-path> - 컬렉션의 데이터를 내보내려면 다음을 따릅니다.
터널에 연결하는 옵션이 포함되어 있습니다. [1]:
--port
터널의 포트로 설정--db
내보낼 데이터베이스의 이름으로 설정--collection
단일 컬렉션.--out
를 빈 디렉토리로 설정하여 데이터 덤프를 출력합니다.중요
mongodump
를 실행하는 사용자가 지정된 디렉토리에 쓰기를 수행할 수 있도록 하세요.
mongodump --port <port for tunnel> \ --db <single-database> \ --collection <collection-name> \ --out <data-dump-path> 예시
27020
포트에서 실행되는 터널에 연결하여restaurants
컬렉션의 데이터를test
데이터베이스에서/mydata/restoredata/
디렉토리로 덤프하려면 다음을 따릅니다.mongodump --port 27020 \ --db test \ --collection restaurants \ --out /mydata/restoredata/ mongodump
(은)는restaurants
컬렉션 데이터를/mydata/restoredata/test/restaurants.bson
파일에 출력합니다.
mongorestore
단일 데이터베이스 또는 컬렉션 을 복원 하려면 를 사용합니다.
- 단일 데이터베이스를 복원하려면 다음과 같이 하세요.
다음
mongorestore
옵션을 포함합니다.대상 클러스터에 데이터베이스가 이미 있는 경우
--drop
을 포함하여 데이터베이스를 제거하도록 선택할 수도 있습니다.
mongorestore --port <port> --db <destination database> <data-dump-path/database> --drop
예를 들어 /mydata/restoredata/test
디렉터리에서 새 데이터베이스 restoredTest
로 복원하려면 다음과 같이 하세요:
mongorestore --port 27017 --db restoredTest /mydata/restoredata/test --drop
이 예시에서는 대상 복제본 세트의 프라이머리 또는 대상 샤딩된 클러스터의 mongos
가 27017
포트에서 수신 대기한다고 가정합니다.
- 단일 컬렉션을 복원하려면 다음을 따릅니다.
다음
mongorestore
옵션을 포함합니다.선택적으로 컬렉션이 이미 있는 경우 대상 클러스터에서 컬렉션을 제거하기 위해
--drop
을 포함할 수 있습니다.
mongorestore --port <port> --db <destination database> --collection <collection-name> <data-dump-path/dbname/collection.bson> --drop
예를 들어 /mydata/restoredata/test/restaurants.bson
데이터 파일에서 test2
데이터베이스의 새 컬렉션 rest2
로 복원하려면 다음과 같이 하세요:
mongorestore --port 27017 --db test2 --collection rest2 /mydata/restoredata/test/restaurants.bson --drop
이 예시에서는 대상 복제본 세트의 프라이머리 또는 대상 샤딩된 클러스터의 mongos
가 27017
포트에서 수신 대기한다고 가정합니다.
[1] | (1, 2, 3, 4) 또는 터널을 통해 연결하는 대신 제공된 X.509 PEM 파일을 사용하여 쿼리 가능한 백업에 직접 연결할 수 있습니다. 쿼리 가능한 백업에 직접 연결하는 경우 호스트 이름 및 포트, TLS/SSL 옵션 및 X.509 인증서를 지정해야 합니다. |
중요
AES256-GCM으로 암호화된 스냅샷을 복원한 후 마스터 키 순환
Cloud Manager가 AES256-GCM으로 암호화된 스냅샷을 복원하는 경우, 복원을 완료한 후 마스터 키를 회전합니다.