다음을 통해 공유


테스트 실행 마이그레이션 준비

이 문서에서는 데이터 마이그레이션 도구에 필요한 팀 준비 및 파일 생성에 중점을 둡니다.

7단계 마이그레이션의 테스트 실행 준비 단계가 강조 표시된 다이어그램

필수 조건

테스트 실행 마이그레이션을 준비하기 전에 유효성 검사 단계를 완료합니다.

마이그레이션 설정 생성

컬렉션 데이터베이스의 마이그레이션을 큐에 넣기 위해 마이그레이션 사양 및 관련 파일을 생성하려면 다음 단계를 수행합니다.

  1. 다음 매개 변수를 사용하여 Data Migration Tool prepare 명령을 실행합니다.

    /collection:http://localhost:8080/tfs/DefaultCollection/ tenantDomainName:contoso.com /Region:CUS

    • 테넌트 do기본 이름 옵션은 회사의 Microsoft Entra ID 테넌트의 이름입니다.
    • 준비 명령에는 인터넷 액세스가 필요합니다. Azure DevOps Server에 인터넷 연결이 없는 경우 다른 컴퓨터에서 명령을 실행합니다.
    • "조직 지역"이라는 용어는 컬렉션을 Azure DevOps Services로 마이그레이션하려는 위치를 나타냅니다. 이전에 지역을 선택하고 해당 약식 코드를 기록했습니다. 준비 명령에서 이 코드를 사용합니다.
  2. Microsoft Entra ID 테넌트에 있는 모든 사용자에 대한 정보를 읽을 수 있는 권한이 있는 테넌트에서 사용자로 로그인합니다.

마이그레이션 사양 파일 구성

마이그레이션 사양 파일은 데이터 마이그레이션 도구에 다음 작업을 지시하는 JSON 파일입니다.

  • 마이그레이션된 조직 구성
  • 원본 위치 지정
  • 마이그레이션 사용자 지정

준비 단계 중에 많은 필드가 자동으로 채워지지만 다음 필드를 구성해야 합니다.

  • 조직 이름: 데이터 마이그레이션을 위해 만들려는 조직의 이름입니다.
  • 위치: Azure Storage 컨테이너에 업로드할 데이터베이스 및 마이그레이션 파일의 백업입니다. 이 필드는 마이그레이션 도구에서 Azure Storage 컨테이너에서 원본 파일에 안전하게 연결하고 읽는 데 사용하는 SAS 키를 지정합니다. 스토리지 컨테이너 만들기는 5단계의 뒷부분에서 다루며 SAS 키 생성은 새 마이그레이션을 위해 큐에 대기하기 전에 6단계에서 다룹니다.
  • DACPAC: 컬렉션의 SQL 데이터베이스를 패키지하는 파일입니다.
  • 마이그레이션 유형: 마이그레이션 유형: 테스트 실행 또는 프로덕션 실행.

각 마이그레이션 사양 파일은 단일 컬렉션에 대한 것입니다. 다른 컬렉션에 대해 생성된 마이그레이션 사양 파일을 사용하려고 하면 마이그레이션이 시작되지 않습니다. 마이그레이션하려는 각 컬렉션에 대한 테스트 실행을 준비하고 생성된 마이그레이션 사양 파일을 사용하여 마이그레이션을 큐에 추가해야 합니다.

ID 맵 로그 파일 검토

ID 맵 로그는 마이그레이션하는 실제 데이터만큼 중요합니다. 로그 파일을 검사할 때 ID 마이그레이션이 작동하는 방식과 잠재적인 결과를 이해합니다. ID를 마이그레이션하는 경우 활성 또는 기록일 수 있습니다. 활성 ID는 Azure DevOps Services에 로그인할 수 있지만 기록 ID는 로그인할 수 없습니다. 서비스는 어떤 형식이 사용되는지 결정합니다.

참고 항목

ID가 기록 ID로 마이그레이션되면 활성 ID로 변환할 방법이 없습니다.

활성 ID

활성 ID는 마이그레이션 후 Azure DevOps Services의 사용자 ID를 참조합니다. Azure DevOps Services에서 이러한 ID는 라이선스가 부여되고 조직의 사용자로 표시됩니다. ID는 ID 맵 로그 파일의 예상 가져오기 상태 열에서 활성으로 표시됩니다.

기록 ID

기록 ID는 ID 맵 로그 파일의 예상 가져오기 상태 열에 매핑됩니다. 파일에 줄 항목이 없는 ID도 기록 상태가 됩니다. 줄 입력이 없는 ID의 예로는 회사에서 더 이상 근무하지 않는 직원이 있을 수 있습니다.

활성 ID와 달리 기록 ID:

  • 마이그레이션 후에는 조직에 액세스할 수 없습니다.
  • 라이선스가 없습니다.
  • 조직에서 사용자로 표시되지 않습니다. 그 기록은 나중에 검색할 수 있도록 조직에서 해당 ID의 이름에 대한 개념만 지속됩니다. 회사에서 더 이상 일하지 않거나 조직에 더 이상 액세스할 필요가 없는 사용자에게 기록 ID를 사용하는 것이 좋습니다.

참고 항목

ID가 기록으로 마이그레이션된 후에는 활성화할 수 없습니다.

라이선스

마이그레이션하는 동안 ID 매핑 로그의 예상 가져오기 상태 열에 "활성"으로 표시되는 모든 사용자에 대해 라이선스가 자동으로 할당됩니다. 자동 라이선스 할당이 잘못된 경우 마이그레이션이 완료된 후 하나 이상의 사용자의 "액세스 수준"을 편집하여 변경할 수 있습니다.

할당이 항상 완벽하지는 않을 수 있으므로 다음 달 첫 번째 달까지 필요에 따라 라이선스를 다시 할당해야 합니다. 다음 달 초까지 조직에 구독을 연결하지 않고 올바른 수의 라이선스를 구매한 경우 모든 유예 기간 라이선스가 해지됩니다. 또는 자동 할당에 다음 달에 구입한 것보다 더 많은 라이선스가 할당된 경우 추가 라이선스에 대한 요금이 청구되지 않지만 모든 미지급 라이선스를 취소합니다.

액세스 권한을 잃지 않도록 하려면 구독을 연결하고 청구가 매월 실행되므로 해당 월의 첫 번째 이전에 필요한 라이선스를 구매하는 것이 좋습니다. 모든 테스트 실행의 경우 조직이 활성 상태인 한 라이선스는 무료입니다.

Azure DevOps 구독

Visual Studio 구독 기본적으로 마이그레이션에 할당되지 않습니다. 대신 Visual Studio 구독 사용자가 해당 라이선스를 사용하도록 자동으로 업그레이드됩니다. 사용자의 작업 조직이 올바르게 연결된 경우 Azure DevOps Services는 마이그레이션 후 첫 번째 로그인 시 Visual Studio 구독 혜택을 자동으로 적용합니다.

사용자가 Azure DevOps Services에서 Visual Studio 구독을 사용하도록 자동으로 업그레이드되지 않는 경우 테스트 실행 마이그레이션을 반복할 필요가 없습니다. Visual Studio 구독 연결은 마이그레이션 범위 외부에서 발생하는 작업입니다. 마이그레이션 전후에 작업 조직이 올바르게 연결되면 사용자는 다음 로그인 시 라이선스를 자동으로 업그레이드합니다. 업그레이드한 후에는 사용자가 조직에 처음 로그인할 때 자동으로 업그레이드됩니다.

Azure DevOps Services IP에 대한 액세스만 제한

Azure Storage 계정에 대한 액세스를 Azure DevOps Services의 IP로만 제한합니다. 컬렉션 데이터베이스 마이그레이션 프로세스에 관련된 Azure DevOps Services IP의 연결만 허용하여 액세스를 제한할 수 있습니다. 스토리지 계정에 대한 액세스 권한을 부여해야 하는 IP는 마이그레이션하는 지역에 따라 달라집니다.

옵션 1: 서비스 태그 사용

포털을 통해 또는 프로그래밍 방식으로 네트워크 보안 그룹 또는 방화벽에 서비스 태그를 추가하여 azuredevops 모든 Azure DevOps Services 지역의 연결을 쉽게 허용할 수 있습니다.

옵션 2: IP 목록 사용

IpList 명령을 사용하여 특정 Azure DevOps Services 지역의 연결을 허용하기 위해 액세스 권한을 부여해야 하는 IP 목록을 가져옵니다.

도움말 설명서에는 Azure DevOps Server 인스턴스 자체 및 원격 컴퓨터에서 Migrator를 실행하기 위한 지침과 예제가 포함되어 있습니다. Azure DevOps Server 인스턴스의 애플리케이션 계층 중 하나에서 명령을 실행하는 경우 명령에는 다음과 같은 구조가 있어야 합니다.

Migrator IpList /collection:{CollectionURI} /tenantDomainName:{name} /region:{region} 

포털을 통해 또는 프로그래밍 방식으로 네트워크 보안 그룹 또는 방화벽에 IP 목록을 추가할 수 있습니다.

SQL Azure에 대한 IP 방화벽 예외 구성

이 섹션은 SQL Azure에 대한 방화벽 예외 구성에만 적용됩니다. DACPAC 마이그레이션의 경우 Azure Storage 방화벽 및 가상 네트워크 구성을 참조 하세요.

데이터 마이그레이션 도구를 사용하려면 Azure DevOps Services IP가 포트 1433에서만 인바운드 연결에 대해 구성되어야 합니다.

SQL Azure VM에 대한 Azure 네트워킹 계층에서 처리하는 데 필요한 IP에 대한 예외를 부여하려면 다음 단계를 수행합니다.

  1. Azure Portal에 로그인합니다.
  2. SQL Azure VM으로 이동합니다.
  3. 설정에서 네트워킹을 선택합니다.
  4. 인바운드 포트 규칙 추가를 선택합니다. SQL Azure VM 네트워크 인터페이스 페이지의 인바운드 포트 규칙 추가 단추 스크린샷
  5. 고급을 선택하여 특정 IP에 대한 인바운드 포트 규칙을 구성합니다. 인바운드 보안 규칙 추가 창의 고급 단추 스크린샷
  6. 원본 드롭다운 목록에서 IP 주소를 선택하고, 예외를 부여해야 하는 IP 주소를 입력하고, 대상 포트 범위를1433 로 설정하고, 이름 상자에 구성 중인 예외를 가장 잘 설명하는 이름을 입력합니다.

구성된 다른 인바운드 포트 규칙에 따라 Azure DevOps Services 예외에 대한 기본 우선 순위를 변경해야 무시되지 않을 수 있습니다. 예를 들어 Azure DevOps Services 예외보다 우선 순위가 높은 "1433에 대한 모든 인바운드 연결 거부" 규칙이 있는 경우 데이터 마이그레이션 도구가 데이터베이스에 성공적으로 연결하지 못할 수 있습니다.

완료된 인바운드 포트 규칙 구성의 스크린샷

필요한 모든 Azure DevOps Services IP에 예외가 부여될 때까지 인바운드 포트 규칙 추가를 반복합니다. IP가 하나 누락되면 마이그레이션이 시작에 실패할 수 있습니다.

큰 컬렉션 마이그레이션

데이터 마이그레이션 도구에서 경고하는 데이터베이스의 경우 Azure DevOps Services로 마이그레이션하려면 다른 데이터 패키징 접근 방식이 필요합니다. 컬렉션이 크기 임계값을 초과하는지 확실하지 않은 경우 컬렉션에서 데이터 마이그레이션 도구 유효성 검사를 실행해야 합니다. 유효성 검사를 통해 마이그레이션에 SQL Azure VM 메서드를 사용해야 하는지 여부를 알 수 있습니다.

컬렉션 크기를 줄일 수 있는지 확인

이전 데이터를 클린 수 있는지 확인합니다. 시간이 지남에 따라 컬렉션은 대량의 데이터를 빌드할 수 있습니다. 이러한 증가는 DevOps 프로세스의 자연스러운 부분이지만 모든 데이터를 유지할 필요가 없다는 것을 알 수 있습니다. 더 이상 관련 없는 데이터의 몇 가지 일반적인 예는 이전 작업 영역 및 빌드 결과입니다.

데이터 마이그레이션 도구는 컬렉션을 검색하고 이전에 멘션 제한과 비교합니다. 그런 다음 컬렉션이 DACPAC 또는 SQL 마이그레이션 방법에 적합한지 여부를 보고합니다. 일반적으로 컬렉션이 DACPAC 제한에 맞게 충분히 작으면 더 빠르고 간단한 DACPAC 접근 방식을 사용할 수 있습니다. 그러나 컬렉션이 너무 큰 경우 SQL Azure VM을 설정하고 데이터베이스를 수동으로 마이그레이션하는 SQL 마이그레이션 방법을 사용해야 합니다.

크기 제한

이 제한은 현재 다음과 같습니다.

  • DACPAC의 총 데이터베이스 크기(데이터베이스 메타데이터 + Blob)는 150GB입니다. 이 제한을 초과하면 SQL 마이그레이션 방법을 수행해야 합니다.
  • DACPAC에 대한 30GB 개별 테이블 크기(데이터베이스 메타데이터 + Blob)입니다. 단일 테이블이 이 제한을 초과하는 경우 SQL 마이그레이션 방법을 수행해야 합니다.
  • SQL 마이그레이션 방법에 대한 1,536GB 데이터베이스 메타데이터 크기입니다. 이 제한을 초과하면 경고가 발생합니다. 마이그레이션에 성공하려면 이 크기를 유지하는 것이 좋습니다.
  • SQL 마이그레이션 방법에 대한 2,048GB 데이터베이스 메타데이터 크기입니다. 이 제한을 초과하면 오류가 발생하므로 마이그레이션을 수행할 수 없습니다.
  • SQL 마이그레이션 방법에 대한 Blob 크기에 대한 제한이 없습니다.

더 이상 관련이 없는 오래된 아티팩트를 클린 경우 예상보다 많은 공간을 제거할 수 있으며 DACPAC 마이그레이션 방법 또는 SQL Azure VM을 사용할지 여부를 결정할 수 있습니다.

Important

이전 데이터를 삭제한 후에는 컬렉션의 이전 백업을 복원하지 않으면 복구할 수 없습니다.

DACPAC 임계값 미만인 경우 지침에 따라 마이그레이션을 위한 DACPAC를 생성합니다. DACPAC 임계값에 따라 데이터베이스를 가져올 수 없는 경우 Azure DevOps Services로 마이그레이션할 SQL Azure VM을 설정해야 합니다.

Azure DevOps Services로 마이그레이션할 SQL Azure VM 설정

Azure DevOps Services로 마이그레이션할 SQL Azure VM(가상 머신)을 설정하려면 다음 개략적인 단계를 수행합니다.

  1. SQL Azure VM 설정
  2. IP 방화벽 예외 구성
  3. VM에서 데이터베이스 복원
  4. [마이그레이션을 위한 컬렉션 구성
  5. VM을 대상으로 마이그레이션 사양 파일 구성

SQL Azure VM 설정

Azure Portal에서 SQL Azure VM을 신속하게 설정할 수 있습니다. 자세한 내용은 Azure Portal을 사용하여 SQL Server를 사용하여 Windows 가상 머신을 프로비전하는 방법을 참조 하세요.

SQL Azure VM 및 연결된 데이터 디스크의 성능은 마이그레이션 성능에 큰 영향을 줍니다. 이러한 이유로 다음 작업을 수행하는 것이 좋습니다.

  • 이상의 수준에서 D8s_v5_* VM 크기를 선택합니다.
  • 관리 디스크 사용.
  • 가상 머신 및 디스크 성능을 참조하세요. VM IOPS(초당 입력/출력) 및 스토리지 IOPS가 마이그레이션 성능에 병목 상태가 되지 않도록 인프라가 구성되어 있는지 확인합니다. 예를 들어 VM에 연결된 데이터 디스크 수가 VM에서 IOPS를 지원하기에 충분한지 확인합니다.

Azure DevOps Services는 전 세계 여러 Azure 지역에서 사용할 수 있습니다. 마이그레이션이 성공적으로 시작되도록 하려면 데이터를 올바른 지역에 배치하는 것이 중요합니다. 잘못된 위치에 SQL Azure VM을 설정하면 마이그레이션이 시작되지 않습니다.

Important

Azure VM에는 공용 IP 주소가 필요합니다.

이 마이그레이션 방법을 사용하는 경우 지원되는 지역에 VM을 만듭니다. Azure DevOps Services는 미국(미국)의 여러 지역에서 사용할 수 있지만 중앙 미국 지역만 새 조직을 허용합니다. 이제 다른 미국 Azure 지역으로 데이터를 마이그레이션할 수 없습니다.

참고 항목

DACPAC 고객은 "3단계: DACPAC 파일 업로드](migration-test-run.md#)" 섹션의 지역 테이블을 참조해야 합니다. 앞의 지침은 SQL Azure VM에만 적용됩니다. DACPAC 고객인 경우 마이그레이션에 지원되는 Azure 지역을 참조하세요.

다음 SQL Azure VM 구성을 사용합니다.

  • C 드라이브 이외의 드라이브를 사용하도록 SQL 임시 데이터베이스를 구성합니다. 드라이브에 여유 공간이 충분한 것이 이상적입니다. 적어도 데이터베이스의 가장 큰 테이블과 동일합니다.
  • 크기를 줄인 후에도 원본 데이터베이스가 여전히 1TB(테라바이트)를 초과하는 경우 더 많은 1TB 디스크를 연결하고 단일 파티션으로 결합하여 VM에서 데이터베이스를 복원해야 합니다.
  • 컬렉션 데이터베이스의 크기가 1TB를 초과하면 임시 데이터베이스와 컬렉션 데이터베이스 모두에 SSD(반도체 하드 드라이브)를 사용하는 것이 좋습니다. 또한 16개의 vCPU(가상 CPU) 및 128GB(기가바이트)의 RAM(임의 액세스 메모리)이 있는 더 큰 VM을 사용하는 것이 좋습니다.

VM에서 데이터베이스 복원

Azure VM을 설정하고 구성한 후에는 Azure DevOps Server 인스턴스에서 Azure VM으로 분리된 백업을 가져와야 합니다. 컬렉션 데이터베이스는 SQL 인스턴스에서 복원해야 하며 VM에 Azure DevOps Server를 설치할 필요가 없습니다.

마이그레이션을 위한 컬렉션 구성

Azure VM에서 컬렉션 데이터베이스를 복원한 후 Azure DevOps Services가 데이터베이스에 연결하여 데이터를 마이그레이션할 수 있도록 SQL 로그인을 구성합니다. 이 로그인은 단일 데이터베이스에 대한 읽기 액세스만 허용합니다.

  1. VM에서 SQL Server Management Studio를 연 다음 마이그레이션할 데이터베이스에 대해 새 쿼리 창을 엽니다.

  2. 데이터베이스의 복구를 단순으로 설정합니다.

    ALTER DATABASE [<Database name>] SET RECOVERY SIMPLE;
    
  3. 데이터베이스에 대한 SQL 로그인을 만들고 다음 예제와 같이 'TFSEXECROLE'에 해당 로그인을 할당합니다.

    USE [<database name>] 
    CREATE LOGIN <pick a username> WITH PASSWORD = '<pick a password>' 
    CREATE USER <username> FOR LOGIN <username> WITH DEFAULT_SCHEMA=[dbo] 
    EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='<username>'
    

SQL 명령의 다음 예제를 참조하세요.

    ALTER DATABASE [Foo] SET RECOVERY SIMPLE; 
     
    USE [Foo] 
    CREATE LOGIN fabrikam WITH PASSWORD = 'fabrikamimport1!' 
    CREATE USER fabrikam FOR LOGIN fabrikam WITH DEFAULT_SCHEMA=[dbo] 
    EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='fabrikam'

Important

VM의 SQL Server Management Studio에서 SQL Server 및 Windows 인증 모드를 사용하도록 설정합니다. 인증 모드를 사용하도록 설정하지 않으면 마이그레이션이 실패합니다.

VM을 대상으로 마이그레이션 사양 파일 구성

SQL Server 인스턴스에 연결하는 방법에 대한 정보를 포함하도록 마이그레이션 사양 파일을 업데이트합니다. 마이그레이션 사양 파일을 열고 다음을 업데이트합니다.

  1. 원본 파일 개체에서 DACPAC 매개 변수를 제거합니다. 변경 전의 마이그레이션 사양은 다음 예제 코드와 같습니다.

    변경 전 마이그레이션 사양의 스크린샷.

    변경 후의 마이그레이션 사양은 다음 예제 코드와 같습니다.

    변경 후 마이그레이션 사양의 스크린샷.

  2. 필수 매개 변수를 입력하고 사양 파일의 원본 개체 내에 다음 속성 개체를 추가합니다.

    "Properties": 
    { 
        "ConnectionString": "Data Source={SQL Azure VM Public IP};Initial Catalog={Database Name};Integrated Security=False;User ID={SQL Login Username};Password={SQL Login Password};Encrypt=True;TrustServerCertificate=True"  
    }
    

변경 내용을 적용한 후 마이그레이션 사양은 다음 예제와 같습니다.

SQL Azure VM을 참조하는 마이그레이션 사양의 스크린샷

마이그레이션 사양은 이제 마이그레이션에 SQL Azure VM을 사용하도록 구성되었습니다. 마이그레이션을 위한 나머지 준비 단계를 진행합니다. 마이그레이션이 완료되면 SQL 로그인을 삭제하거나 암호를 회전해야 합니다. Microsoft는 마이그레이션이 완료된 후 로그인 정보를 유지하지 않습니다.

선택한 데이터 센터에서 Azure Storage 컨테이너 만들기

Azure DevOps용 데이터 마이그레이션 도구를 사용하려면 최종 Azure DevOps Services 조직과 동일한 Azure 데이터 센터에 Azure Storage 컨테이너가 있어야 합니다. 예를 들어 Azure DevOps Services 조직을 Central 미국 데이터 센터에 만들려는 경우 동일한 데이터 센터에서 Azure Storage 컨테이너를 만듭니다. 이 작업은 동일한 데이터 센터 내에서 전송이 발생하므로 SQL 데이터베이스를 마이그레이션하는 데 걸리는 시간을 크게 단축합니다.

자세한 내용은 스토리지 계정 만들기 를 참조하세요.

청구 설정

팀이 필요한 단계를 완료하고 라이선스 할당을 수정할 수 있도록 새로 마이그레이션된 Azure DevOps Services 조직에 유예 기간이 적용됩니다. 더 이상 사용자 계획, 빌드 또는 배포 파이프라인, 호스트된 빌드 서비스, 호스트된 부하 테스트 서비스를 구매할 것으로 예상되는 경우 마이그레이션된 조직에 연결할 준비가 된 Azure 구독을 사용하는 것이 좋습니다. 유예 기간은 마이그레이션을 완료한 후 다음 달 첫째 날에 종료됩니다.

연결을 수행해야 하는 경우 마이그레이션 후 단계(링크)에서 다시 한 번 알려 드립니다. 이 준비 단계는 이후 단계에서 사용하는 Azure 구독을 알고 있는지 확인하는 것입니다. 자세한 내용은 조직에 대한 청구 설정을 참조하세요.

다음 단계