MongoDB 네이티브 도구를 사용하여 MongoDB를 Azure Cosmos DB for MongoDB vCore 오프라인으로 마이그레이션

적용 대상: MongoDB vCore

이 자습서에서는 MongoDB 네이티브 도구를 사용하여 MongoDB의 온-프레미스 또는 클라우드 인스턴스에서 Azure Cosmos DB for MongoDB vCore로 오프라인(일회성) 데이터베이스 마이그레이션을 수행합니다. MongoDB 네이티브 도구는 기존 MongoDB 인스턴스에서 데이터 조작을 용이하게 하는 이진 집합입니다. 이 문서는 mongoexport/mongoimport 또는 mongodump/mongorestore를 사용하여 MongoDB 인스턴스에서 데이터를 마이그레이션하는 데 중점을 둡니다. 네이티브 도구는 연결 문자열을 사용하여 MongoDB에 연결되므로 어디서나 도구를 실행할 수 있습니다. 네이티브 도구는 총 마이그레이션 시간이 문제가 되지 않는 소규모 데이터 세트에 대한 가장 간단한 솔루션이 될 수 있습니다.

필수 조건

준비

마이그레이션을 시작하기 전에 마이그레이션을 위해 Azure Cosmos DB for MongoDB vCore 계정과 기존 MongoDB 인스턴스를 준비했는지 확인합니다.

  • MongoDB 인스턴스(원본)
    • 원본 인스턴스와 대상 계정 사이에 비호환성 및 경고 목록이 있는지 확인하려면 마이그레이션 전 평가를 완료하세요.
    • MongoDB 네이티브 도구가 기존(원본) MongoDB 인스턴스와 동일한 버전과 일치하는지 확인합니다.
      • MongoDB 인스턴스에 Azure Cosmos DB for MongoDB vCore와 다른 버전이 있는 경우 MongoDB 네이티브 도구 버전을 둘 다 설치하고 MongoDB 및 Azure Cosmos DB for MongoDB vCore에 각각 적절한 도구 버전을 사용합니다.
    • 이미 존재하지 않는 한 readWrite 권한이 있는 사용자를 추가합니다. 결국 mongoexportmongodump 도구와 함께 이 자격 증명을 사용하게 됩니다.
  • Azure Cosmos DB for MongoDB vCore(대상)

추가 방화벽 문제를 방지하려면 MongoDB 인스턴스와 동일한 네트워크 내에서 이러한 도구를 실행하는 것이 좋습니다.

적절한 MongoDB 네이티브 도구 선택

오프라인 마이그레이션에 적합한 MongoDB 네이티브 도구를 선택할 때 몇 가지 높은 수준의 고려 사항이 있습니다.

마이그레이션 수행

기본 네이티브 도구를 사용하여 원본 MongoDB 인스턴스의 컬렉션을 대상 Azure Cosmos DB for MongoDB vCore 계정으로 마이그레이션합니다. 도구 선택에 대한 자세한 내용은 네이티브 MongoDB 도구를 참조하세요.

Azure Cosmos DB for MongoDB vCore로 가져오려는 작은 JSON 파일이 있는 경우 mongoimport 도구는 데이터를 빠르게 수집하기 위한 솔루션입니다.

  1. 원본 MongoDB 인스턴스에서 데이터를 내보내려면 터미널을 열고 여기에 나열된 세 가지 방법 중 하나를 사용합니다.

    • JSON 레코드에 연결하고 내보내려면 --host, --username--password 인수를 지정합니다.

      mongoexport \
          --host <hostname><:port> \
          --username <username> \
          --password <password> \
          --db <database-name> \
          --collection <collection-name> \
          --out <filename>.json
      
    • --query 인수를 추가하여 MongoDB 데이터의 하위 집합을 내보냅니다. 이 인수는 도구가 필터와 일치하는 문서만 내보내도록 합니다.

      mongoexport \
          --host <hostname><:port> \
          --username <username> \
          --password <password> \
          --db <database-name> \
          --collection <collection-name> \
          --query '{ "quantity": { "$gte": 15 } }' \
          --out <filename>.json
      
    • Azure Cosmos DB for MongoDB vCore에서 데이터를 내보냅니다.

      mongoexport \
          --uri <target-connection-string>
          --db <database-name> \
          --collection <collection-name> \
          --query '{ "quantity": { "$gte": 15 } }' \
          --out <filename>.json
      
  2. 이전에 내보낸 파일을 대상 Azure Cosmos DB for MongoDB vCore 계정으로 가져옵니다.

    mongoimport \
        --file <filename>.json \
        --type json \
        --db <database-name> \
        --collection <collection-name> \
        --ssl \
        --uri <target-connection-string>
    
  3. mongoimportt에서 터미널 출력을 모니터링합니다. 출력에서는 가져오기 작업 상태에 대한 업데이트와 함께 텍스트 줄을 터미널에 인쇄합니다.

다음 단계