Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

시드 mongorestore

mongodumpmongorestore를 사용하여 MongoDB Atlas cluster를 기존 MongoDB 독립형 또는 복제본 세트의 데이터로 시드할 수 있습니다. 기존 MongoDB 샤딩된 클러스터의 데이터 시드에 대한 안내는 Atlas 지원팀에 문의하세요.

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

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Support 를 클릭합니다.

    프로젝트 지원 페이지가 표시됩니다.

2

Atlas UI를 사용하여 M0 프리 티어 클러스터를 M10+ 유료 클러스터로 확장할 수 있지만 이 섹션에서는 mongodumpmongorestore 절차를 사용하여 M0 프리 티어 클러스터에서 M10+ 클러스터로 데이터를 복사할 수도 있습니다.

이 절차에서는 안정적인 최신 릴리스 버전의 mongodumpmongorestore 를 사용합니다.

마이그레이션을 최신 상태로 진행하려면 소스 클러스터에 대한 모든 쓰기를 중지할 수 있는 유지 관리 기간을 예약하세요. 절차의 mongodump 부분이 완료된 후 소스 클러스터로 실행된 쓰기 작업은 대상 클러스터로 마이그레이션되지 않습니다.

mongorestore가 데이터 복원을 완료한 후에는 쓰기 작업이 재개되기 전에 애플리케이션을 대상 Atlas 클러스터로 전환해야 합니다. Atlas 클러스터에 연결하려면 클러스터에 연결을 참조하세요.

필요한 총 다운타임은 마이그레이션되는 데이터의 크기 및 소스 클러스터와 Atlas 간의 네트워크 연결과 같은 요인에 따라 달라집니다. 장기 다운타임에 대한 질문이나 우려 사항이 있는 경우 Atlas 지원팀에 문의하세요.

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

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Support 를 클릭합니다.

    프로젝트 지원 페이지가 표시됩니다.

2

이전 MongoDB 버전에 대한 가동 중단 시간을 최소화하는 마이그레이션 절차는 복제본 세트 실시간 6.0 마이그레이션 을 참조하세요.

Atlas는 데이터베이스 사용자 생성을 관리합니다. 소스 클러스터가 인증을 시행하는 경우:

  • 프라이머리에 대한 읽기 액세스를 허용합니다.

  • 옵션과 함께 를 mongorestore --oplogReplay 사용하려면 admin config 가 생성하는 dump 디렉토리에서 및 mongodump 디렉토리를 삭제해야 합니다. adminconfig 디렉토리에는 mongorestore 로 Atlas 클러스터에 추가할 수 없는 데이터베이스 사용자 정보가 포함되어 있습니다. mongorestore --nsExclude 를 사용하여 admin.system.* 네임스페이스를 제외합니다.

기존 사용자 또는 역할 정보는 Atlas로 마이그레이션할 수 없습니다. 대상 Atlas 클러스터의 경우 애플리케이션의 사용 패턴을 지원하는 데 적합한 데이터베이스 사용자를 생성하세요. 새 데이터베이스 사용자를 사용하려면 전환 절차의 일환으로 원하는 애플리케이션을 업데이트하세요. 자세한 내용은 데이터베이스 사용자 구성을 참조하세요.

이 절차를 수행하려면 소스 클러스터의 호스트에서 mongodumpmongorestore 를 실행해야 합니다. 이러한 프로그램은 CPU 및 메모리와 같은 시스템 리소스를 사용하며 호스트의 성능에 영향을 줄 수 있습니다.

시스템 사용량이 많지 않을 때 또는 예정된 유지 관리 기간 중에 이 절차를 실행하세요. 소스가 복제본 세트인 경우 세컨더리 멤버의 호스트에서 이 절차를 실행할 수 있습니다. 클러스터에 대한 쓰기를 중지한 후 이 절차를 시작하기 전에 세컨더리가 프라이머리를 따라잡을 수 있도록 기다리세요.

이 절차에서는 Linux 파이프mongodump 사용합니다.mongorestore 의 출력을 로 스트리밍합니다. mongorestore 프로세스가 mongodump 프로세스를 따라잡지 못하면 파이프 고장 오류가 발생할 수 있습니다.

지속적인 파이프 고장 오류를 해결하는 방법에 대한 지침은 Atlas 지원팀에 문의하세요.

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

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Support 를 클릭합니다.

    프로젝트 지원 페이지가 표시됩니다.

2

다음 튜토리얼에서는 mongodumpmongorestore 를 사용하여 기존 MongoDB cluster 에서 Atlas 클러스터로 데이터를 업로드합니다.

1

중요

옵션

소스 클러스터에서 인증을 적용하지 않는 경우, 이 단계를 건너뛰세요.

소스 배포에서 인증을 시행하는 경우 이 절차의 일환으로 데이터베이스 사용자에게 모든 데이터베이스를 읽을 수 있는 권한을 제공해야 합니다. 데이터베이스 사용자 권한에 대해 자세히 알아보려면 MongoDB 역할 기반 액세스 제어를 참조하세요.

이러한 사용자가 없는 경우 admin 데이터베이스의 백업 역할을 사용하여 소스 MongoDB 복제본 세트에서 사용자를 생성합니다.

예시

mongosh 에서 다음 명령을 실행하여 admin 데이터베이스에 mySourceUser 를 생성하고 여기에 backup 역할을 할당합니다. 복제본 세트의 경우 프라이머리에 대해 이 명령을 실행해야 합니다.

use admin
db.createUser(
{
user: "<mySourceUser>",
pwd: "<mySourcePassword>",
roles: [ "backup" ]
}
)
2

사용하는 연결 문자열 유형에 따라 다음 템플릿 중 하나를 원하는 텍스트 편집기에 복사합니다.

참고

Atlas 클러스터에 연결하려면 --uri 옵션을 사용하여 DNS 시드 목록 연결 문자열에 연결하는 것이 좋습니다.

mongodump --uri "mongodb://username:password@mongodb0.example.com:<Port>,mongodb1.example.com:<Port1>,mongodb2.example.com:<Port2>/?replicaSet=<ReplicaSetName>&authSource=admin" \
--archive

호스트 예시를 복제본 세트 멤버에 대한 정보로 바꾸세요. <ReplicaSetName>을(를) 소스 복제본 세트의 이름으로 바꾸세요.

독립형 배포의 경우 replicaSet=<ReplicaSetName>을(를) 제외하고 독립형 배포의 호스트 이름만 지정합니다. 예시: --uri "mongodb://standalone-mongod.example.net:27017"

mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \
--archive

참고

Ubuntu 18.04 에서 mongodump 또는 mongorestore 를 사용하는 경우 --uri 옵션과 함께 SRV 연결 문자열 ( mongodb+srv:// 형식)을 사용할 때 cannot unmarshal DNS 오류 메시지가 표시될 수 있습니다. 이 경우 다음 옵션 중 하나를 대신 사용합니다.

  • 비SRV 연결 string 이 있는 --uri 옵션(mongodb:// 형식)

  • 직접 연결할 호스트를 지정하는 --host 옵션

참고

비밀번호에 특수 문자가 포함된 경우 퍼센트 인코딩된 비밀번호여야 합니다.

이 명령은 아직 실행하지 마세요. 이 템플릿을 수정하고 나서 다음 단계로 넘어가세요.

3

Atlas cluster에 대해 mongorestore 를 실행하려면 Atlas cluster에서 Atlas admin 역할이 있는 데이터베이스 사용자를 지정해야 합니다.

해당 사용자가 없는 경우 사용자를 만듭니다:

  1. Atlas에서 Organization Access Manager 페이지로 이동합니다.

    1. 아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.

    2. 다음 단계 중 하나를 수행합니다.

      • 탐색 표시줄의 Access Manager 메뉴에서 Organization Access 을 선택합니다.

      • 사이드바에서 Access Manager를 클릭합니다.

      조직 액세스 관리자 페이지가 표시됩니다.

  2. 딸깍 하는 소리 Add New Database User.

  3. Atlas admin 0} 사용자를 추가합니다.

사용자 관리의 자세한 내용은 데이터베이스 사용자 구성을 참조하세요.

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

  2. 아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.

  3. 아직 표시되지 않은 경우 사이드바에서 Clusters 클릭하세요.

    Clusters(클러스터) 페이지가 표시됩니다.

5

로부터 클러스터 메뉴에서 Command Line Tools 클릭합니다.

6

Command Line Tools 탭의 Binary Import and Export Tools 섹션에는 mongorestore 를 Atlas cluster에 연결하는 데 필요한 최소한의 옵션이 포함된 복사 가능한 템플릿이 표시됩니다.

이 템플릿에는 특정 옵션에 대한 자리 표시자 값이 포함되어 있습니다. 템플릿을 복사하여 기본 설정 텍스트 편집기에 붙여 넣고 다음 항목을 수정하세요.

  • password: 이 항목을 username에 지정된 사용자의 비밀번호로 바꾸세요. 이 템플릿에는 해당 프로젝트의 데이터베이스 사용자가 username으로 포함되어 있습니다. 다른 사용자로 인증하려면 username 값을 바꾸고 password에 해당 사용자의 비밀번호를 지정하세요.

  • --nsExclude 을 추가하고 해당 값을 "admin.system.*" 로 설정합니다.

  • --archive 을(를) 추가합니다.

사용하는 연결 문자열 유형에 따라 템플릿은 다음 명령 중 하나와 유사해야 합니다.

mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myRepl&authSource=admin" \
--archive \
--ssl \
--nsExclude "admin.system.*"
mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \
--archive \
--nsExclude "admin.system.*"
7

중요

mongodumpmongorestore를 실행하려는 호스트가 해당 프로젝트의 IP 액세스 목록에 있는지 확인하세요.

프로젝트 IP 액세스 목록을 검토하려면 사이드바의 Security 섹션에서 Network Access를 클릭합니다. IP Access List 탭이 표시됩니다. 자세한 내용은 IP 액세스 목록을 참조하세요.

선호하는 텍스트 편집기에서 파이프 | 연산자를 사용하여 mongodump } 명령과 mongorestore 명령을 구분합니다. 최종 명령은 사용하는 연결 string 유형에 따라 다음 중 하나와 유사해집니다.

mongodump --uri "mongodb://username:password@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=sourceRS&authSource=admin" \
--archive \
| \
mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myAtlasRS&authSource=admin" \
--archive \
--ssl \
--nsExclude "admin.system.*"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \
--archive \
| \
mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \
--archive \
--nsExclude "admin.system.*"

작성한 명령을 소스 클러스터의 호스트 기기에 연결된 터미널 또는 셸에서 실행하세요.

절차가 성공적으로 완료되면 mongosh를 사용하여 Atlas 클러스터에 연결하고 절차의 결과를 확인합니다. 자세한 방법은 mongosh를 통한 연결을 참조하세요.

쓰기 작업을 재개하기 전에 Atlas 클러스터를 가리키도록 애플리케이션을 업데이트해야 합니다. 애플리케이션을 Atlas에 연결하는 방법은 Connect via Drivers(드라이버를 통한 연결)을 참조하세요.

다음도 참조하세요.

돌아가기

mongormirror 버전