Docs Menu
Docs Home
/
MongoDB Atlas
/ /

쿼리 가능 레거시 백업에서 데이터베이스 복원

이 페이지의 내용

  • 전제 조건
  • 절차

중요

레거시 백업 사용 중단

2020년 3월 23일부터 모든 새 클러스터는 Cloud Backup 만 사용할 수 있습니다.

5.0으로 업그레이드하면 현재 레거시 백업으로 설정되어 있는 경우 백업 시스템이 클라우드 백업으로 업그레이드됩니다. 이 업그레이드 후 다음 사항을 확인할 수 있습니다.

  • 기존의 모든 레거시 백업 스냅샷을 계속 사용할 수 있습니다. 보존 정책에 따라 시간이 지남에 따라 만료됩니다.

  • 백업 정책이 기본 일정으로 재설정됩니다. 레거시 백업에 사용자 지정 백업 정책을 적용한 경우 Cloud Backup 설명서에 설명된 절차에 따라 백업정책을 다시 생성해야 합니다.

Atlas는 레거시 백업 스냅샷을 쿼리하여 데이터베이스 복원을 지원합니다.

쿼리 가능 백업 스냅샷 을 사용하여 데이터베이스의 데이터를 내보내고 대상 배포로 복원할 수 있습니다. 다음 절차는 Atlas에서 제공하는 터널을 통해 쿼리 가능 백업 인스턴스에 연결합니다.

중요

동일한 데이터베이스 에 복원하는 경우 복원 중에만 클라이언트 작업을 중지해야 합니다.

복원 중에는 대상 Atlas cluster가 클라이언트 요청을 수신하지 않는지 확인해야 합니다. 다음 사용 사례가 적용됩니다.

  • 동일한 데이터베이스로 복원하려면 복원 중에 클라이언트 작업을 중지해야 합니다.

  • 다른 데이터베이스로 복원하려는 경우 클라이언트 애플리케이션을 중지할 필요가 없습니다. 이 경우 새 Atlas cluster로 복원하고 새 배포가 실행되면 해당 새 cluster를 사용하도록 애플리케이션을 재구성할 수 있습니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Project 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 사이드바에서 Legacy Backup를 클릭합니다.

2

Legacy Backup 페이지의 Overview 탭에는 프로젝트의 cluster가 나열됩니다.

  • cluster에 대해 백업이 활성화된 경우 StatusActive 입니다.

  • cluster에 대한 백업이 비활성화된 경우 StatusInactive 입니다.

백업을 쿼리하려는 배포서버의 경우 Options 열의 줄임표를 클릭하고 Query 을 선택합니다.

View All Snapshots 을 클릭하여 스냅샷을 보고 원하는 스냅샷의 Actions 열 아래에서 Query 을 클릭할 수도 있습니다.

3
  1. 쿼리할 스냅샷을 선택하고 Next을 클릭합니다.

  2. Start 스냅샷을 쿼리하는 프로세스입니다. Atlas 비밀번호를 입력하라는 메시지가 표시됩니다.

  3. 쿼리 가능 스냅샷에 대한 연결 메서드로 Backup Tunnel을(를) 선택합니다.

  4. Platform 을(를) 선택합니다.

  5. Download Backup Tunnel를 클릭합니다.

  6. 다운로드한 파일의 압축을 풉니다.

  7. 터미널 또는 명령 프롬프트를 열고 압축되지 않은 <tunnel> 디렉토리로 이동합니다. 실행 파일을 실행하여 터널을 시작합니다.

    터널의 기본 포트는 27017입니다. 포트를 변경하려면 다음 예와 같이 --local 플래그를 사용합니다.

    ./<tunnel executable> --local localhost:27020

    참고

    포트를 변경하는 경우에는 연결 시 포트 정보를 반드시 포함시켜야 합니다.

4
데이터베이스에서 데이터를 내보내려면 다음을 수행합니다.

터널에 연결하려면 다음 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/

mongodumptest 데이터베이스 파일을 /mydata/restoredata/test/ 디렉토리에 출력합니다.

mongodump 이(가) $PATH 에 없는 경우 명령을 실행 때 도구의 경로를 지정합니다.

5
단일 데이터베이스를 복원하려면 다음을 수행합니다.

다음 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
6

작업을 완료하면 쿼리 가능한 인스턴스를 종료할 수 있습니다.

  1. 왼쪽 탐색 창에서 Legacy Backup 을 클릭하고 Restores & Downloads 탭을 클릭합니다.

  2. 대상 배포서버 항목의 Status 열 위로 마우스를 가져간 다음 Cancel 을(를) 클릭합니다.

  3. Cancel Restore Job를 클릭합니다.

7

애플리케이션을 다시 시작하고 새 대상 cluster를 사용하는지 확인합니다.

돌아가기

스냅샷 쿼리

이 페이지의 내용