쿼리 가능 레거시 백업에서 데이터베이스 복원
중요
레거시 백업 사용 중단
2020년 3월 23일부터 모든 새 클러스터는 Cloud Backup 만 사용할 수 있습니다.
5.0으로 업그레이드하면 현재 레거시 백업으로 설정되어 있는 경우 백업 시스템이 클라우드 백업으로 업그레이드됩니다. 이 업그레이드 후 다음 사항을 확인할 수 있습니다.
기존의 모든 레거시 백업 스냅샷을 계속 사용할 수 있습니다. 보존 정책에 따라 시간이 지남에 따라 만료됩니다.
백업 정책이 기본 일정으로 재설정됩니다. 레거시 백업에 사용자 지정 백업 정책을 적용한 경우 Cloud Backup 설명서에 설명된 절차에 따라 백업정책을 다시 생성해야 합니다.
Atlas는 레거시 백업 스냅샷을 쿼리하여 데이터베이스 복원을 지원합니다.
중요
Atlas cloud 백업 쿼리를 지원하지 않습니다.
쿼리 가능 백업 스냅샷 을 사용하여 데이터베이스의 데이터를 내보내고 대상 배포로 복원할 수 있습니다. 다음 절차는 Atlas에서 제공하는 터널을 통해 쿼리 가능 백업 인스턴스에 연결합니다.
참고
한 Atlas cluster에서 다른 Atlas cluster로 데이터를 복원하려면 소스 및 대상 cluster가 포함된 Atlas 프로젝트에 대한 Project Owner
역할이 있어야 합니다.
전제 조건
중요
동일한 데이터베이스 에 복원하는 경우 복원 중에만 클라이언트 작업을 중지해야 합니다.
복원 중 클라이언트 작업
복원 중에는 대상 Atlas cluster가 클라이언트 요청을 수신하지 않는지 확인해야 합니다. 다음 사용 사례가 적용됩니다.
동일한 데이터베이스로 복원하려면 복원 중에 클라이언트 작업을 중지해야 합니다.
다른 데이터베이스로 복원하려는 경우 클라이언트 애플리케이션을 중지할 필요가 없습니다. 이 경우 새 Atlas cluster로 복원하고 새 배포가 실행되면 해당 새 cluster를 사용하도록 애플리케이션을 재구성할 수 있습니다.
절차
쿼리 가능한 스냅샷에 대한 백업 터널을 엽니다.
쿼리할 스냅샷을 선택하고 Next을 클릭합니다.
Start 스냅샷을 쿼리하는 프로세스입니다. Atlas 비밀번호를 입력하라는 메시지가 표시됩니다.
쿼리 가능 스냅샷에 대한 연결 메서드로 Backup Tunnel을(를) 선택합니다.
Platform 을(를) 선택합니다.
Download Backup Tunnel를 클릭합니다.
다운로드한 파일의 압축을 풉니다.
터미널 또는 명령 프롬프트를 열고 압축되지 않은 <tunnel> 디렉토리로 이동합니다. 실행 파일을 실행하여 터널을 시작합니다.
터널의 기본 포트는
27017
입니다. 포트를 변경하려면 다음 예와 같이--local
플래그를 사용합니다../<tunnel executable> --local localhost:27020 참고
포트를 변경하는 경우에는 연결 시 포트 정보를 반드시 포함시켜야 합니다.
mongodump
쿼리 가능 백업 에서 단일 데이터베이스 를 내보내려면 를 사용합니다.
- 데이터베이스에서 데이터를 내보내려면 다음을 수행합니다.
터널에 연결하려면 다음
mongodump
옵션을 포함합니다.--port
터널의 포트로 설정--db
내보낼 데이터베이스의 이름으로 설정--out
를 빈 디렉토리로 설정하여 데이터 덤프를 출력합니다.중요
mongodump
를 실행하는 사용자가 지정된 디렉토리에 쓰기를 수행할 수 있도록 하세요.
mongodump --port <port for tunnel> --db <single-database> --out <data-dump-path> 예를 들어,
27020
포트에서 실행 중인 터널에 연결하여test
데이터베이스의 데이터를/mydata/restoredata/
디렉토리로 덤프하려면 다음을 수행합니다.mongodump --port 27020 --db test --out /mydata/restoredata/ mongodump
는test
데이터베이스 파일을/mydata/restoredata/test/
디렉토리에 출력합니다.mongodump
이(가)$PATH
에 없는 경우 명령을 실행 때 도구의 경로를 지정합니다.
단일 데이터베이스 를 복원 하려면 mongorestore
를 사용합니다.
- 단일 데이터베이스를 복원하려면 다음을 수행합니다.
다음
mongorestore
옵션을 포함합니다.참고
Atlas cluster로 복원하려면
--uri
옵션을 사용하여 DNS 시드 목록 연결 문자열에 연결하는 것이 좋습니다.--uri
대상 cluster에 대한 연결 문자열로 설정합니다.--db
를 대상 데이터베이스의 이름으로 설정합니다.
참고
비밀번호에 특수 문자가 포함된 경우 퍼센트 인코딩된 비밀번호여야 합니다.
선택적으로, 데이터베이스가 이미 존재하는 경우 대상 클러스터에서 데이터베이스를 삭제하는
--drop
옵션을 포함할 수 있습니다.
mongorestore --uri "mongodb://username:password@mongodb0.example.com:<Port>,mongodb1.example.com:<Port1>,mongodb2.example.com:<Port2>" --ssl --db <destination database> <data-dump-path/database> --drop
mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db <destination database> <data-dump-path/database> --drop
참고
Ubuntu 18.04 에서 mongodump
또는 mongorestore
를 사용하는 경우 --uri
옵션과 함께 SRV 연결 문자열 ( mongodb+srv://
형식)을 사용할 때 cannot unmarshal DNS
오류 메시지가 표시될 수 있습니다. 이 경우 다음 옵션 중 하나를 대신 사용합니다.
비SRV 연결 string 이 있는
--uri
옵션(mongodb://
형식)직접 연결할 호스트를 지정하는
--host
옵션
예를 들어 /mydata/restoredata/test
디렉터리에서 새 데이터베이스 restoredTest
로 복원하려면 다음과 같이 하세요:
mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017" --ssl --db restoredTest /mydata/restoredata/test --drop
이 예시 에서는 대상 복제본 세트의 프라이머리 또는 대상 샤드 클러스터의 샤딩된 가 포트 27017
에서 수신 대기 mongos 가정합니다.
mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db restoredTest /mydata/restoredata/test --drop