시드 mongorestore
mongodump
및 mongorestore
를 사용하여 MongoDB Atlas cluster를 기존 MongoDB 독립형 또는 복제본 세트의 데이터로 시드할 수 있습니다. 기존 MongoDB 샤딩된 클러스터의 데이터 시드에 대한 안내는 Atlas 지원팀에 문의하세요.
Atlas에서 Project Support 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Support 를 클릭합니다.
프로젝트 지원 페이지가 표시됩니다.
Atlas UI를 사용하여 M0
프리 티어 클러스터를 M10+
유료 클러스터로 확장할 수 있지만 이 섹션에서는 mongodump
및 mongorestore
절차를 사용하여 M0
프리 티어 클러스터에서 M10+
클러스터로 데이터를 복사할 수도 있습니다.
고려 사항
권장되는 mongodump
및 mongorestore
버전
이 절차에서는 안정적인 최신 릴리스 버전의 mongodump
및 mongorestore
를 사용합니다.
필요한 다운타임
마이그레이션을 최신 상태로 진행하려면 소스 클러스터에 대한 모든 쓰기를 중지할 수 있는 유지 관리 기간을 예약하세요. 절차의 mongodump
부분이 완료된 후 소스 클러스터로 실행된 쓰기 작업은 대상 클러스터로 마이그레이션되지 않습니다.
mongorestore
가 데이터 복원을 완료한 후에는 쓰기 작업이 재개되기 전에 애플리케이션을 대상 Atlas 클러스터로 전환해야 합니다. Atlas 클러스터에 연결하려면 클러스터에 연결을 참조하세요.
필요한 총 다운타임은 마이그레이션되는 데이터의 크기 및 소스 클러스터와 Atlas 간의 네트워크 연결과 같은 요인에 따라 달라집니다. 장기 다운타임에 대한 질문이나 우려 사항이 있는 경우 Atlas 지원팀에 문의하세요.
Atlas에서 Project Support 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Support 를 클릭합니다.
프로젝트 지원 페이지가 표시됩니다.
이전 MongoDB 버전에 대한 가동 중단 시간을 최소화하는 마이그레이션 절차는 복제본 세트 실시간 6.0 마이그레이션 을 참조하세요.
클러스터 보안
Atlas는 데이터베이스 사용자 생성을 관리합니다. 소스 클러스터가 인증을 시행하는 경우:
프라이머리에 대한 읽기 액세스를 허용합니다.
옵션과 함께 를
mongorestore
--oplogReplay
사용하려면admin
config
가 생성하는dump
디렉토리에서 및mongodump
디렉토리를 삭제해야 합니다.admin
및config
디렉토리에는mongorestore
로 Atlas 클러스터에 추가할 수 없는 데이터베이스 사용자 정보가 포함되어 있습니다.mongorestore
--nsExclude
를 사용하여admin.system.*
네임스페이스를 제외합니다.
기존 사용자 또는 역할 정보는 Atlas로 마이그레이션할 수 없습니다. 대상 Atlas 클러스터의 경우 애플리케이션의 사용 패턴을 지원하는 데 적합한 데이터베이스 사용자를 생성하세요. 새 데이터베이스 사용자를 사용하려면 전환 절차의 일환으로 원하는 애플리케이션을 업데이트하세요. 자세한 내용은 데이터베이스 사용자 구성을 참조하세요.
성능
이 절차를 수행하려면 소스 클러스터의 호스트에서 mongodump
및 mongorestore
를 실행해야 합니다. 이러한 프로그램은 CPU 및 메모리와 같은 시스템 리소스를 사용하며 호스트의 성능에 영향을 줄 수 있습니다.
시스템 사용량이 많지 않을 때 또는 예정된 유지 관리 기간 중에 이 절차를 실행하세요. 소스가 복제본 세트인 경우 세컨더리 멤버의 호스트에서 이 절차를 실행할 수 있습니다. 클러스터에 대한 쓰기를 중지한 후 이 절차를 시작하기 전에 세컨더리가 프라이머리를 따라잡을 수 있도록 기다리세요.
파이프 동작
이 절차에서는 Linux 파이프 를 mongodump
사용합니다.mongorestore
의 출력을 로 스트리밍합니다. mongorestore
프로세스가 mongodump
프로세스를 따라잡지 못하면 파이프 고장 오류가 발생할 수 있습니다.
지속적인 파이프 고장 오류를 해결하는 방법에 대한 지침은 Atlas 지원팀에 문의하세요.
Atlas에서 Project Support 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
Projects 메뉴 옆에 있는 Options 메뉴를 펼친 다음 Project Support 를 클릭합니다.
프로젝트 지원 페이지가 표시됩니다.
절차
다음 튜토리얼에서는 mongodump
및 mongorestore
를 사용하여 기존 MongoDB cluster 에서 Atlas 클러스터로 데이터를 업로드합니다.
소스 복제본 세트에서 데이터베이스 사용자를 만듭니다.
중요
옵션
소스 클러스터에서 인증을 적용하지 않는 경우, 이 단계를 건너뛰세요.
소스 배포에서 인증을 시행하는 경우 이 절차의 일환으로 데이터베이스 사용자에게 모든 데이터베이스를 읽을 수 있는 권한을 제공해야 합니다. 데이터베이스 사용자 권한에 대해 자세히 알아보려면 MongoDB 역할 기반 액세스 제어를 참조하세요.
이러한 사용자가 없는 경우 admin
데이터베이스의 백업 역할을 사용하여 소스 MongoDB 복제본 세트에서 사용자를 생성합니다.
예시
mongosh
에서 다음 명령을 실행하여 admin
데이터베이스에 mySourceUser
를 생성하고 여기에 backup
역할을 할당합니다. 복제본 세트의 경우 프라이머리에 대해 이 명령을 실행해야 합니다.
use admin db.createUser( { user: "<mySourceUser>", pwd: "<mySourcePassword>", roles: [ "backup" ] } )
mongodump
명령을 조합합니다.
사용하는 연결 문자열 유형에 따라 다음 템플릿 중 하나를 원하는 텍스트 편집기에 복사합니다.
참고
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
옵션
참고
비밀번호에 특수 문자가 포함된 경우 퍼센트 인코딩된 비밀번호여야 합니다.
이 명령은 아직 실행하지 마세요. 이 템플릿을 수정하고 나서 다음 단계로 넘어가세요.
대상 Atlas 클러스터에서 데이터베이스 사용자를 설정하세요.
Atlas cluster에 대해 mongorestore
를 실행하려면 Atlas cluster에서 Atlas admin
역할이 있는 데이터베이스 사용자를 지정해야 합니다.
해당 사용자가 없는 경우 사용자를 만듭니다:
Atlas에서 Organization Access Manager 페이지로 이동합니다.
아직 표시되지 않은 경우 다음 목록에서 원하는 조직 을 선택하세요. 탐색 표시줄의 Organizations 메뉴.
다음 단계 중 하나를 수행합니다.
탐색 표시줄의 Access Manager 메뉴에서 Organization Access 을 선택합니다.
사이드바에서 Access Manager를 클릭합니다.
조직 액세스 관리자 페이지가 표시됩니다.
딸깍 하는 소리 Add New Database User.
Atlas admin 0} 사용자를 추가합니다.
사용자 관리의 자세한 내용은 데이터베이스 사용자 구성을 참조하세요.
AtlasGo Atlas 에서 프로젝트 의 Clusters 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.
mongorestore
연결 템플릿을 조회하여 수정합니다.
Command Line Tools 탭의 Binary Import and Export Tools 섹션에는 mongorestore
를 Atlas cluster에 연결하는 데 필요한 최소한의 옵션이 포함된 복사 가능한 템플릿이 표시됩니다.
이 템플릿에는 특정 옵션에 대한 자리 표시자 값이 포함되어 있습니다. 템플릿을 복사하여 기본 설정 텍스트 편집기에 붙여 넣고 다음 항목을 수정하세요.
password
: 이 항목을username
에 지정된 사용자의 비밀번호로 바꾸세요. 이 템플릿에는 해당 프로젝트의 데이터베이스 사용자가username
으로 포함되어 있습니다. 다른 사용자로 인증하려면username
값을 바꾸고password
에 해당 사용자의 비밀번호를 지정하세요.--nsExclude
을 추가하고 해당 값을"admin.system.*"
로 설정합니다.
사용하는 연결 문자열 유형에 따라 템플릿은 다음 명령 중 하나와 유사해야 합니다.
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.*"
mongodump
및 mongorestore
를 실행합니다.
중요
mongodump
및 mongorestore
를 실행하려는 호스트가 해당 프로젝트의 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(드라이버를 통한 연결)을 참조하세요.