프로젝트 컬렉션 분할

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

비즈니스가 변경되면 단일 프로젝트 컬렉션을 여러 프로젝트 컬렉션으로 분할할 수 있습니다. 예를 들면 다음과 같습니다.

  • 컬렉션의 프로젝트가 조직 내 사업부에 맞게 조정되기를 바라며 컬렉션의 프로젝트는 이제 별도의 사업부에서 소유합니다.

  • 이전 버전의 Azure DevOps Server 업그레이드했으며 컬렉션이 하나뿐이며 보안 또는 비즈니스 맞춤을 위해 프로젝트를 별도의 컬렉션으로 구성하려고 합니다.

  • 컬렉션에 있는 일부 프로젝트의 소유권을 Azure DevOps Server 자체 배포가 있는 원격 사무실로 변경하려고 합니다. 이 시나리오에서는 먼저 컬렉션을 분할하고 분할한 컬렉션 중 하나를 원격 사무실 배포로 이동해야 합니다.

    참고

    이 문서의 절차는 프로젝트 컬렉션 분할만 지원합니다. 컬렉션을 분할한 후 이동하려면 프로젝트 컬렉션 이동을 참조하세요.

프로젝트 컬렉션을 분할하려면 다음 단계를 수행합니다.

  1. 컬렉션 분할 준비

    1. 컬렉션 분리
    2. 컬렉션 데이터베이스 백업
  2. 컬렉션 분할

    1. 다른 이름으로 컬렉션 데이터베이스 복원
    2. 원래 컬렉션 데이터베이스 연결
    3. 이름 변경된 컬렉션 데이터베이스 연결
    4. 분할 컬렉션에서 프로젝트 삭제
    5. 컬렉션 시작
  3. 분할 컬렉션 구성

    1. 분할 프로젝트 컬렉션에 대한 사용자 및 그룹 구성
    2. 컬렉션의 프로젝트에 대해 사용자 및 그룹 구성

시작하기 전 주의 사항

서버와 SQL Server 및 Azure DevOps Server 관리자인지 확인합니다. 관리자가 아닌 경우 관리자로 추가합니다.

1-a. 컬렉션 분리

먼저 실행 중인 Azure DevOps Server 배포에서 컬렉션을 분리합니다. 컬렉션을 분리하면 컬렉션 데이터베이스 자체뿐만 아니라 모든 작업 및 서비스가 중지됩니다. 또한 분리 프로세스는 구성 데이터베이스에서 컬렉션별 데이터를 복사하여 프로젝트 컬렉션 데이터베이스의 일부로 저장합니다.

프로젝트 컬렉션 분리

  1. 분할할 컬렉션을 호스트하는 서버에서 Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 프로젝트 컬렉션을 선택하고 컬렉션 목록에서 분할할 컬렉션을 선택합니다.

    이 예제에서 관리자는 TestProjects를 선택합니다.

    컬렉션 목록에서 컬렉션 선택

    프로젝트 컬렉션의 기본 이름은 DefaultCollection입니다. 이 데이터베이스를 분할하는 경우 연결 시 기본 선택 항목이므로 두 번째 컬렉션에 다른 이름을 지정해야 합니다.

  3. 일반 탭에서 컬렉션 중지를 선택합니다.

    컬렉션 인터페이스 중지

    프로젝트 컬렉션 상태 이유 대화 상자가 열립니다. 입력하는 텍스트는 사용자에게 표시됩니다. 중지를 선택하고 컬렉션이 중지되기를 기다립니다. 중지되면 해당 상태 오프라인으로 표시됩니다.

  4. 일반 탭에서 컬렉션 분리를 선택합니다.

    프로젝트 컬렉션 분리 마법사가 열립니다.

    컬렉션 분리 마법사

  5. (선택 사항) 프로젝트 컬렉션에 대한 서비스 메시지 제공 페이지의 서비스 메시지에서 이 컬렉션의 프로젝트에 연결하려고 할 수 있는 사용자에게 메시지를 제공합니다.

  6. 프로젝트 컬렉션 분리에 사용할 설정 검토 페이지에서 세부 정보를 검토합니다. 설정을 변경하려면 이전을 선택합니다. 올바른 경우 확인을 선택합니다.

  7. 모든 준비 검사가 성공적으로 완료되면 분리를 선택합니다.

  8. 프로젝트 컬렉션 분리 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.

  9. (선택 사항) 이 프로젝트 컬렉션에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록한 다음 마법사를 닫습니다.

    프로젝트 컬렉션이 관리 콘솔의 컬렉션 목록에 더 이상 표시되지 않습니다.

1-b. 컬렉션 데이터베이스 백업

컬렉션을 분리한 후 데이터베이스를 백업해야 다른 이름으로 서버에 복사본을 복원할 수 있습니다. 해당 복사본은 다른 컬렉션으로 분할하려는 원래 컬렉션의 일부에 대한 데이터베이스가 됩니다. 이 작업을 수행하려면 SQL Server 함께 제공되는 도구를 사용합니다.

데이터베이스 백업

컬렉션 데이터베이스 백업

2-a. 컬렉션 데이터베이스 복원

컬렉션을 분할할 때 컬렉션 데이터베이스의 백업을 Azure DevOps Server 배포를 지원하도록 구성된 SQL Server instance 복원해야 합니다. 데이터베이스를 복원할 경우 원래 컬렉션 데이터베이스의 이름과 다른 이름을 제공해야 합니다.

아래 단계에서는 SQL Server Management Studio 사용하여 2012년 SQL Server 프로젝트 컬렉션 데이터베이스를 복원하는 방법에 대한 일반적인 개요를 제공합니다. 개별 데이터베이스를 수동으로 백업하고 복원하는 방법에 대한 자세한 내용은 SQL Server 데이터베이스 백업 및 복원을 참조하세요. 배포와 일치하는 SQL Server 버전을 선택해야 합니다.

새 이름으로 컬렉션 데이터베이스 복원

  1. SQL Server Management Studio 열고 분할할 프로젝트 컬렉션의 데이터베이스를 호스트하는 instance 연결합니다.

  2. 개체 탐색기 데이터베이스를 확장하고 분할할 데이터베이스의 하위 메뉴를 연 다음 작업을 선택하고복원을 선택한 다음 데이터베이스를 선택합니다.

    데이터베이스 복원 창이 일반 페이지에 열립니다.

    일반 창에서 데이터베이스 복원 옵션

  3. 원본에서 프로젝트 컬렉션 데이터베이스가 선택되어 있는지 확인합니다. 대상에서 데이터베이스 복사본의 이름을 제공합니다. Tfs_ 접두사를 유지하고 고유한 이름을 추가합니다. 일반적으로 해당 이름은 분할 프로젝트 컬렉션의 이름입니다. 복원 계획에서 복원할 백업 집합이 복원하려는 백업 집합인지 확인합니다. 이러한 집합이 유효한 집합인지 확인하려면 백업 미디어 확인을 선택한 다음, 페이지 선택에서 옵션을 선택합니다.

  4. 복원 옵션에서 모든 검사 상자를 비워 둡니다. 복구 상태가RESTORE WITH RECOVERY로 설정되어 있는지 확인합니다. 비상 로그 백업에서 복원 상태 검사 원본 데이터베이스 나가기 상자의 선택을 취소한 다음 확인을 선택합니다.

    데이터베이스가 사용 중이며 덮어쓸 수 없음을 나타내는 오류 메시지와 함께 복원 작업이 실패하는 경우 데이터베이스의 새 이름을 반영하도록 모든 논리 파일 이름을 수동으로 구성해야 할 수 있습니다. 페이지 선택에서 파일을 선택하고 복원할 각 파일 옆에 있는 줄임표 단추를 선택하고 파일 이름이 이전 이름이 아닌 데이터베이스의 새 이름을 반영하는지 확인합니다. 그런 다음 복원 작업을 다시 시도합니다.

2-b. 원래 컬렉션 데이터베이스 연결

다른 이름으로 데이터베이스를 복원한 후 원래 컬렉션 데이터베이스를 Azure DevOps Server 배포에 다시 연결합니다.

컬렉션 연결

  1. Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 프로젝트 컬렉션을 선택한 다음 컬렉션 연결을 선택합니다.

    프로젝트 컬렉션 연결 마법사가 열립니다.

  3. 연결할 프로젝트 컬렉션 데이터베이스 선택 페이지의 SQL Server 인스턴스에서 아직 나열되지 않은 경우 서버 이름과 컬렉션 데이터베이스를 호스트하는 instance 제공합니다.

  4. 데이터베이스 목록에서 연결할 컬렉션 데이터베이스를 선택합니다.

    데이터베이스 목록

  5. 프로젝트 컬렉션 정보 입력 페이지에서 이름이 아직 없는 경우 이름에 컬렉션의 이름을 입력합니다. 원래 컬렉션이므로 이전과 동일하게 이름을 그대로 두도록 선택할 수 있습니다. 설명에서 필요에 따라 컬렉션에 대한 설명을 제공합니다.

  6. 프로젝트 컬렉션에 연결하는 데 사용할 설정 검토 페이지에서 정보를 검토합니다.

  7. 설정을 변경하려면 이전을 선택합니다. 모든 설정이 올바른 경우 확인을 선택합니다.

  8. 모든 준비 검사가 성공적으로 완료되면 연결을 선택합니다.

  9. 프로젝트 컬렉션 연결 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.

  10. (선택 사항) 이 프로젝트 컬렉션에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 적어두고 마법사를 닫습니다.

  11. 프로젝트 컬렉션은 관리 콘솔의 컬렉션 목록에 표시됩니다. 컬렉션 상태가 온라인으로 나열된 경우계속하기 전에 중지해야 합니다. 목록에서 컬렉션을 선택하고 일반 탭에서 컬렉션 중지를 선택합니다.

    컬렉션 이미지 중지

2-c. 이름 변경된 컬렉션 데이터베이스 연결

원래 컬렉션 데이터베이스를 연결한 후에는 이름이 바뀐 컬렉션을 Azure DevOps Server 배포에 연결해야 합니다. 이 컬렉션이 연결되면 계속 중지 상태로 유지됩니다. 모든 중복 프로젝트가 제거될 때까지 시작할 수 없습니다.

이름 변경된 컬렉션 데이터베이스 연결

  1. Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 프로젝트 컬렉션을 선택한 다음 컬렉션 연결을 선택하여 마법사를 엽니다.

  3. 연결할 프로젝트 컬렉션 데이터베이스 선택 페이지의 SQL Server 인스턴스에서 이름이 변경된 컬렉션 데이터베이스를 호스트하는 서버 이름과 instance 지정합니다(아직 나열되지 않은 경우).

  4. 데이터베이스 목록에서 이름이 변경된 컬렉션 데이터베이스를 선택합니다.

  5. 프로젝트 컬렉션 정보 입력 페이지에서 이름에 이름이 변경된 컬렉션의 이름을 입력합니다. 이 이름은 컬렉션의 원래 이름과 다릅니다. Tfs_ 접두사 없이 이름이 바뀐 데이터베이스에 지정한 이름과 일치해야 합니다.

    팀 프로젝트 이름 항목 첨부

  6. (선택 사항) 설명에 컬렉션에 대한 설명을 입력합니다.

  7. 프로젝트 컬렉션에 연결하는 데 사용할 설정 검토 페이지에서 정보를 검토합니다. 설정을 변경하려면 이전을 선택합니다. 모든 설정이 올바른 경우 확인을 선택합니다.

  8. 모든 준비 검사가 성공적으로 완료되면 연결을 선택합니다.

  9. 프로젝트 컬렉션 연결 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.

  10. (선택 사항) 이 프로젝트 컬렉션에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록한 다음 마법사를 닫습니다.

  11. 컬렉션 이름은 관리 콘솔의 컬렉션 목록에 표시되며 해당 상태 오프라인으로 표시되어야 합니다.

    팀 프로젝트 이름 항목 첨부

  12. 두 컬렉션 모두 고유한 ID와 연결되었는지 확인하려면 관리 콘솔에서 이벤트 로그로 이동하여 두 컬렉션 연결 작업의 로그 파일을 엽니다. CollectionProperties에 대한 GUID는 일치하지 않아야 합니다.

    CollectionProperties에 대한 GUID를 포함하는 로그

    CollectionProperties GUID가 일치하는 경우 두 번째 컬렉션에서 /clone 매개 변수를 사용하여 TFSConfig Collection 명령을 실행하여 계속하기 전에 ID를 고유 ID로 변경합니다.

2-d. 분할 컬렉션의 프로젝트 삭제

이제 Azure DevOps Server 연결된 컬렉션의 복사본이 두 개 있으므로 두 컬렉션에 프로젝트가 남아 있지 않도록 원래 컬렉션 또는 이름이 변경된 컬렉션에서 각 프로젝트를 삭제해야 합니다.

중요

프로젝트는 둘 이상의 컬렉션에 있을 수 없습니다. 분할 컬렉션 사이에 중복된 모든 프로젝트를 삭제할 때까지 이름 변경된 컬렉션을 시작할 수 없습니다.

컬렉션에서 프로젝트 삭제

  1. Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 프로젝트 컬렉션을 선택하고 컬렉션 목록에서 분할하기 위해 중지한 원래 프로젝트 컬렉션을 선택합니다.

  3. 프로젝트 탭의 프로젝트 목록에서 컬렉션에서 삭제할 프로젝트를 선택한 다음 삭제를 선택합니다.

    삭제할 프로젝트를 한 번에 둘 이상 선택할 수 있습니다.

    프로젝트를 삭제하기 위한 TFS 관리 콘솔

  4. 작업 영역 데이터 삭제 검사 상자를 선택하고 외부 아티팩트 검사 삭제 상자를 선택 취소한 다음 삭제를 선택합니다.

    외부 아티팩트 검사 삭제 상자가 선택 취소되지 않고 프로젝트가 랩 관리를 사용하도록 구성된 경우 프로젝트와 연결된 가상 머신 및 템플릿이 System Center Virtual Machine Manager 삭제됩니다. 이름이 변경된 컬렉션의 프로젝트에서 더 이상 사용할 수 없습니다. (랩 관리는 TFS 2017 이상 버전에서 더 이상 사용되지 않습니다.)

  5. 원래 프로젝트 컬렉션에서 호스트하지 않으려는 프로젝트 삭제를 완료한 경우 컬렉션 목록에서 이름이 바뀐 프로젝트 컬렉션을 선택합니다. 그런 다음 프로젝트 탭에서 새 컬렉션에서 원치 않는 프로젝트를 삭제합니다.

    프로젝트 탭의 프로젝트

  6. 두 컬렉션에 고유한 프로젝트 집합이 포함될 때까지 이 섹션의 단계를 반복합니다.

2-e. 프로젝트 컬렉션 시작

프로젝트를 삭제한 후 두 컬렉션을 다시 시작합니다.

프로젝트 컬렉션 시작

  1. Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 프로젝트 컬렉션을 선택하고 컬렉션 목록에서 해당 컬렉션을 분할하기 위해 중지한 컬렉션을 선택합니다.

  3. 일반 탭에서 컬렉션 시작을 선택합니다.

  4. 새 이름과 연결한 컬렉션에 대해 2단계를 반복합니다.

    TFS 관리 콘솔

3-a. 분할 컬렉션에 대해 사용자 및 그룹 구성

두 개의 분할 컬렉션 모두 동일한 도메인에 남아 있고 원래 컬렉션의 관리자가 두 컬렉션에 모두 액세스할 수 있도록 허용하려 할 경우 이 절차를 건너뛸 수 있습니다.

컬렉션을 분할한 후 해당 컬렉션을 관리할 사용자 및 그룹으로 두 컬렉션의 권한 그룹을 업데이트해야 합니다. 자세한 내용은 프로젝트 컬렉션에 대한 관리자 권한 설정을 참조하세요.

3-b. 프로젝트에 대해 사용자 및 그룹 구성

분할 컬렉션이 동일한 도메인에 남아 있고 원래 컬렉션의 프로젝트 사용자가 두 개의 컬렉션에 액세스할 수 있도록 허용하려 할 경우 이 절차를 건너뛸 수 있습니다.

두 컬렉션의 관리자를 구성한 후 귀하 또는 해당 관리자는 각 컬렉션의 프로젝트에 대한 사용자 및 그룹의 액세스를 구성해야 합니다. 배포에 따라 Reporting Services 해당 사용자에 대한 권한을 구성해야 할 수도 있습니다. 자세한 내용은 프로젝트 또는 팀에 사용자 추가를 참조하세요.

Q & A

Q: 내 배포는 보고를 사용합니다. 컬렉션을 분할할 경우 수행해야 하는 추가 단계가 있습니까?

A: 예, 프로젝트 삭제를 완료한 후 두 컬렉션에 고유한 프로젝트 집합이 있도록 보고서를 분할해야 합니다. 또한 데이터 웨어하우스를 다시 빌드해야 합니다.

프로젝트를 삭제한 후 분할 컬렉션에서 사용하는 보고서를 다른 폴더로 이동한 다음 원래 폴더에서 삭제합니다.

중요

보고서 폴더는 두 개 위치에 있습니다. 보고서 폴더를 삭제하기 전에 적절하게 모든 보고서를 이동했는지 확인합니다.

보고서를 별도의 폴더로 분할

  1. 보고서 관리자에서 분할 컬렉션을 지원하는 보고서를 해당 컬렉션에 대해 적절한 폴더로 이동합니다. 자세한 내용은 항목 페이지 이동을 참조하세요.

보고서를 분할하고 두 컬렉션을 모두 시작한 후에는 Azure DevOps용 웨어하우스와 Analysis Services용 데이터베이스를 다시 빌드합니다. 컬렉션 분할 후에 보고서 및 대시보드가 배포에 대해 올바르게 작동하고 배포에서 다른 컬렉션과 충돌이 없는지 확인하기 위해 이 단계를 수행해야 합니다.

데이터 웨어하우스 및 Analysis Services 데이터베이스 다시 빌드

  1. Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 탐색 모음에서 보고를 선택합니다.

  3. 보고에서 다시 빌드 시작을 선택합니다.

  4. 웨어하우스 및 Analysis Services 데이터베이스 다시 빌드 대화 상자에서 확인을 선택합니다.

    참고

    다시 빌드 시작 작업이 완료된 후에 웨어하우스는 계속 다시 빌드되고 데이터는 계속해서 다시 채워집니다. 배포 크기 및 데이터 양에 따라 전체 프로세스를 완료하는 데 몇 시간이 걸릴 수 있습니다.