프로젝트 컬렉션 분할
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
비즈니스가 변경되면 단일 프로젝트 컬렉션을 여러 프로젝트 컬렉션으로 분할할 수 있습니다. 예시:
컬렉션의 프로젝트가 조직의 사업부와 일치하도록 하고 컬렉션의 프로젝트는 이제 별도의 단위로 소유됩니다.
이전 버전의 Azure DevOps Server에서 업그레이드한 경우 컬렉션이 하나뿐이며 보안 또는 비즈니스 맞춤을 위해 프로젝트를 별도의 컬렉션으로 구성하려고 합니다.
컬렉션에 있는 일부 프로젝트의 소유권을 Azure DevOps Server의 자체 배포가 있는 원격 사무실로 변경하려고 합니다. 이 시나리오에서는 먼저 컬렉션을 분할한 다음 결과 컬렉션 중 하나를 원격 사무실 배포로 이동해야 합니다.
참고 항목
이 문서의 절차에서는 프로젝트 컬렉션 분할만 지원합니다. 컬렉션을 분할한 후 이동하려면 프로젝트 컬렉션 이동을 참조하세요.
프로젝트 컬렉션을 분할하려면 다음 단계를 수행합니다.
컬렉션 분할 준비
컬렉션 분할
분할 컬렉션 구성
시작하기 전에
서버 및 SQL Server 및 Azure DevOps Server의 관리자인지 확인합니다. 관리자 가 아닌 경우 관리자로 추가합니다.
1-a. 컬렉션 분리
먼저 실행 중인 Azure DevOps Server의 배포에서 컬렉션을 분리합니다. 컬렉션을 분리하면 컬렉션 데이터베이스 자체뿐만 아니라 모든 작업 및 서비스가 중지됩니다. 또한 분리 프로세스는 구성 데이터베이스에서 컬렉션별 데이터를 복사하여 프로젝트 컬렉션 데이터베이스의 일부로 저장합니다.
프로젝트 컬렉션 분리
분할할 컬렉션을 호스트하는 서버에서 Azure DevOps에 대한 관리 콘솔을 엽니다.
프로젝트 컬렉션을 선택하고 컬렉션 목록에서 분할할 컬렉션을 선택합니다.
이 예제에서 관리자는 TestProjects를 선택합니다.
팁
프로젝트 컬렉션의 기본 이름은 DefaultCollection입니다. 이 데이터베이스를 분할하는 경우 연결 시 기본 선택 항목이므로 두 번째 컬렉션에 다른 이름을 지정해야 합니다.
일반 탭에서 컬렉션 중지를 선택합니다.
프로젝트 컬렉션 상태 이유 대화 상자가 열립니다. 입력한 텍스트가 사용자에게 표시됩니다. 중지를 선택하고 컬렉션이 중지되기를 기다립니다. 중지되면 해당 상태가 오프라인으로 표시됩니다.
일반 탭에서 컬렉션 분리를 선택합니다.
프로젝트 컬렉션 분리 마법사가 열립니다.
(선택 사항) 프로젝트 컬렉션에 대한 서비스 메시지 제공 페이지의 서비스 메시지에서 이 컬렉션의 프로젝트에 연결하려고 할 수 있는 사용자에게 메시지를 제공합니다.
프로젝트 컬렉션 페이지를 분리하는 데 사용할 검토 설정에서 세부 정보를 검토합니다. 설정을 변경하려면 이전을 선택합니다. 올바른 경우 확인을 선택합니다.
모든 준비 검사가 성공적으로 완료되면 분리를 선택합니다.
프로젝트 컬렉션 분리 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.
(선택 사항) 이 프로젝트 컬렉션 에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록한 다음 마법사를 닫습니다.
프로젝트 컬렉션이 관리 콘솔의 컬렉션 목록에 더 이상 표시되지 않습니다.
1-b. 컬렉션 데이터베이스 백업
컬렉션을 분리한 후 다른 이름으로 서버에 복사본을 복원하려면 먼저 해당 데이터베이스를 백업해야 합니다. 이 복사본은 다른 컬렉션으로 분할하려는 원래 컬렉션의 부분에 대한 데이터베이스가 됩니다. 이 작업을 수행하려면 SQL Server와 함께 제공되는 도구를 사용합니다.
컬렉션 데이터베이스 백업
개별 데이터베이스를 수동으로 백업 및 복원하는 방법에 대한 자세한 내용은 SQL Server에서 데이터베이스 백업 및 복원 및 백업 일정 만들기 및 계획을 참조하세요. 배포와 일치하는 SQL Server 버전을 선택해야 합니다.
Important
원래 배포에서 SQL Server의 Enterprise 또는 Datacenter 버전을 사용했으며 Standard 버전을 실행하는 서버로 분할하려는 데이터베이스를 복원하려는 경우 SQL Server 압축을 사용하지 않도록 설정한 백업 세트를 사용해야 합니다. 데이터 압축을 사용하지 않도록 설정하지 않으면 Enterprise 또는 Datacenter Edition 데이터베이스를 Standard Edition을 실행하는 서버로 복원할 수 없습니다. 압축을 해제하려면 Azure DevOps 데이터베이스에서 SQL Server 데이터 압축을 사용하지 않도록 설정하는 단계를 수행합니다.
2-a. 컬렉션 데이터베이스 복원
컬렉션을 분할할 때 컬렉션 데이터베이스의 백업을 Azure DevOps Server 배포를 지원하도록 구성된 SQL Server 인스턴스로 복원해야 합니다. 데이터베이스를 복원할 때 원래 컬렉션 데이터베이스의 이름과 다른 이름을 지정해야 합니다.
팁
아래 단계에서는 SQL Server Management Studio를 사용하여 SQL Server 2012에서 프로젝트 컬렉션 데이터베이스를 복원하는 방법에 대한 일반적인 개요를 제공합니다. 개별 데이터베이스를 수동으로 백업하고 복원하는 방법에 대한 자세한 내용은 SQL Server에서 데이터베이스 백업 및 복원을 참조하세요. 배포와 일치하는 SQL Server 버전을 선택해야 합니다.
새 이름으로 컬렉션 데이터베이스 복원
SQL Server Management Studio를 열고 분할할 프로젝트 컬렉션의 데이터베이스를 호스트하는 인스턴스에 연결합니다.
개체 탐색기 데이터베이스를 확장하고 분할할 데이터베이스의 하위 메뉴를 연 다음 작업을 선택하고 복원을 선택한 다음 데이터베이스를 선택합니다.
데이터베이스 복원 창이 일반 페이지에서 열립니다.
원본에서 프로젝트 컬렉션 데이터베이스가 선택되어 있는지 확인합니다. 대상에서 데이터베이스 복사본의 이름을 입력합니다. Tfs_ 접두사를 유지하고 고유한 이름을 추가합니다. 일반적으로 해당 이름은 분할 프로젝트 컬렉션의 이름입니다. 복원 계획에서 복원할 백업 세트가 복원하려는 백업 세트인지 확인합니다. 이러한 집합이 유효한 집합인지 확인하려면 백업 미디어 확인을 선택한 다음 페이지 선택에서 옵션을 선택합니다.
복원 옵션에서 모든 확인란을 비워 둡니다. 복구 상태가 RESTORE WITH RECOVERY로 설정되어 있는지 확인합니다. 비상 로그 백업의 복원 상태 확인란에서 원본 데이터베이스 나가기 확인란의 선택을 취소한 다음 확인을 선택합니다.
팁
데이터베이스가 사용 중이며 덮어쓸 수 없음을 나타내는 오류 메시지와 함께 복원 작업이 실패하는 경우 데이터베이스의 새 이름을 반영하도록 모든 논리 파일 이름을 수동으로 구성해야 할 수 있습니다. 페이지 선택에서 파일을 선택하고, 복원할 각 파일 옆에 있는 줄임표 단추를 선택하고, 파일의 이름이 이전 이름이 아닌 데이터베이스의 새 이름을 반영하는지 확인합니다. 그런 다음 복원 작업을 다시 시도합니다.
2-b. 원래 컬렉션 데이터베이스 연결
다른 이름으로 데이터베이스를 복원한 후 원래 컬렉션 데이터베이스를 Azure DevOps Server 배포에 다시 연결합니다.
컬렉션 연결
Azure DevOps에 대한 관리 콘솔을 엽니다.
프로젝트 컬렉션을 선택한 다음 컬렉션 첨부를 선택합니다.
프로젝트 컬렉션 연결 마법사가 열립니다.
연결할 프로젝트 컬렉션 데이터베이스 선택 페이지의 SQL Server 인스턴스에서 컬렉션 데이터베이스가 아직 나열되지 않은 경우 서버 이름과 컬렉션 데이터베이스를 호스트하는 인스턴스를 제공합니다.
데이터베이스 목록에서 연결할 컬렉션 데이터베이스를 선택합니다.
프로젝트 컬렉션 정보 입력 페이지에서 이름이 아직 없는 경우 이름에 컬렉션의 이름을 입력합니다. 원래 컬렉션이므로 이전과 동일하게 이름을 그대로 두도록 선택할 수 있습니다. 설명에서 필요에 따라 컬렉션에 대한 설명을 제공합니다.
프로젝트 컬렉션 페이지를 연결하는 데 사용할 검토 설정에서 정보를 검토합니다.
설정을 변경하려면 이전을 선택합니다. 모든 설정이 올바른 경우 확인을 선택합니다.
모든 준비 검사가 성공적으로 완료되면 연결을 선택합니다.
프로젝트 컬렉션 연결 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.
(선택 사항) 이 프로젝트 컬렉션 에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록한 다음 마법사를 닫습니다.
프로젝트 컬렉션은 관리 콘솔의 컬렉션 목록에 나타납니다. 컬렉션 상태가 Online으로 나열된 경우 계속하기 전에 중지해야 합니다. 목록에서 컬렉션을 선택하고 일반 탭에서 컬렉션 중지를 선택합니다.
2-c. 이름이 바뀐 컬렉션 데이터베이스 연결
원래 컬렉션 데이터베이스를 연결한 후에는 이름이 바뀐 컬렉션을 Azure DevOps Server 배포에 연결해야 합니다. 이 컬렉션이 연결되면 중지된 상태로 유지됩니다. 중복된 프로젝트가 모두 제거될 때까지 시작할 수 없습니다.
이름이 바뀐 컬렉션 데이터베이스 연결
Azure DevOps에 대한 관리 콘솔을 엽니다.
프로젝트 컬렉션을 선택한 다음 컬렉션 첨부를 선택하여 마법사를 엽니다.
연결할 프로젝트 컬렉션 데이터베이스 선택 페이지의 SQL Server 인스턴스에서 이름이 바뀐 컬렉션 데이터베이스를 호스트하는 서버 이름과 인스턴스(아직 나열되지 않은 경우)를 제공합니다.
데이터베이스 목록에서 이름이 바뀐 컬렉션 데이터베이스를 선택합니다.
프로젝트 컬렉션 정보 입력 페이지에서 이름 바꾸기 컬렉션 의 이름을 컬렉션의 원래 이름과 다른 이름으로 입력합니다. Tfs_ 접두사 없이 이름이 바뀐 데이터베이스에 지정한 이름과 일치해야 합니다.
(선택 사항) 설명에 컬렉션에 대한 설명을 입력합니다.
프로젝트 컬렉션 페이지를 연결하는 데 사용할 검토 설정에서 정보를 검토합니다. 설정을 변경하려면 이전을 선택합니다. 모든 설정이 올바른 경우 확인을 선택합니다.
모든 준비 검사가 성공적으로 완료되면 연결을 선택합니다.
프로젝트 컬렉션 연결 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.
(선택 사항) 이 프로젝트 컬렉션 에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록한 다음 마법사를 닫습니다.
컬렉션의 이름은 관리 콘솔의 컬렉션 목록에 표시되며 해당 상태는 오프라인으로 표시되어야 합니다.
두 컬렉션이 모두 고유한 ID와 연결되었는지 확인하려면 관리 콘솔에서 이벤트 로그로 이동하여 두 컬렉션 연결 작업에 대한 로그 파일을 엽니다. CollectionProperties에 대한 GUID는 일치하지 않아야 합니다.
CollectionProperties GUID가 일치하는 경우 두 번째 컬렉션에서 /clone 매개 변수를 사용하여 TFSConfig Collection 명령을 실행하여 계속하기 전에 ID를 고유 ID로 변경합니다.
2차원 분할 컬렉션에서 프로젝트 삭제
이제 Azure DevOps Server에 연결된 컬렉션의 복사본이 두 개 있으므로 두 컬렉션에 프로젝트가 남아 있지 않도록 원래 컬렉션 또는 이름이 바뀐 컬렉션에서 각 프로젝트를 삭제해야 합니다.
Important
프로젝트가 둘 이상의 컬렉션에 있을 수 없습니다. 분할 컬렉션 간에 중복된 모든 프로젝트를 삭제할 때까지 이름이 바뀐 컬렉션을 시작할 수 없습니다.
컬렉션에서 프로젝트 삭제
Azure DevOps에 대한 관리 콘솔을 엽니다.
프로젝트 컬렉션을 선택하고 컬렉션 목록에서 해당 컬렉션을 분할하기 위해 중지한 원래 프로젝트 컬렉션을 선택합니다.
프로젝트 탭의 프로젝트 목록에서 컬렉션에서 삭제할 프로젝트를 선택한 다음 삭제를 선택합니다.
팁
한 번에 삭제할 프로젝트를 둘 이상 선택할 수 있습니다.
작업 영역 데이터 삭제 확인란을 선택하고 외부 아티팩트 삭제 확인란의 선택을 취소한 다음 삭제를 선택합니다.
외부 아티팩트 삭제 확인란의 선택을 취소하지 않고 프로젝트가 랩 관리를 사용하도록 구성된 경우 프로젝트와 연결된 가상 머신 및 템플릿이 System Center Virtual Machine Manager에서 삭제됩니다. 이름이 바뀐 컬렉션의 프로젝트에서 더 이상 사용할 수 없습니다. (랩 관리는 TFS 2017 이상 버전에서 더 이상 사용되지 않습니다.)
원래 프로젝트 컬렉션에서 호스트하지 않으려는 프로젝트 삭제를 완료한 경우 컬렉션 목록에서 이름이 바뀐 프로젝트 컬렉션을 선택합니다. 그런 다음 프로젝트 탭의 새 컬렉션에서 원치 않는 프로젝트를 삭제합니다.
두 컬렉션에 고유한 프로젝트 집합이 포함될 때까지 이 섹션의 단계를 반복합니다.
2-e. 프로젝트 컬렉션 시작
프로젝트를 삭제한 후 두 컬렉션을 다시 시작합니다.
프로젝트 컬렉션 시작
Azure DevOps에 대한 관리 콘솔을 엽니다.
프로젝트 컬렉션을 선택하고 컬렉션 목록에서 중단한 컬렉션을 선택하여 분할합니다.
일반 탭에서 컬렉션 시작을 선택합니다.
새 이름으로 첨부한 컬렉션에 대해 2단계를 반복합니다.
3-a. 분할 컬렉션에 대한 사용자 및 그룹 구성
두 분할 컬렉션이 동일한 도메인에 유지되고 원래 컬렉션의 관리자가 두 컬렉션에 대한 액세스를 허용하려는 경우 이 절차를 건너뛸 수 있습니다.
컬렉션을 분할한 후에는 해당 컬렉션을 관리할 사용자 및 그룹으로 두 컬렉션에 대한 권한 그룹을 업데이트해야 합니다. 자세한 내용은 프로젝트 컬렉션에 대한 관리자 권한 설정을 참조 하세요.
3-b. 프로젝트에 대한 사용자 및 그룹 구성
분할 컬렉션이 동일한 도메인에 유지되고 원래 컬렉션의 프로젝트 사용자가 두 컬렉션에 대한 액세스를 허용하려는 경우 이 절차를 건너뛸 수 있습니다.
두 컬렉션에 대해 관리자를 구성한 후에는 사용자 또는 해당 관리자가 각 컬렉션의 프로젝트에 대한 사용자 및 그룹에 대한 액세스를 구성해야 합니다. 배포에 따라 Reporting Services에서 해당 사용자에 대한 권한을 구성해야 할 수도 있습니다. 자세한 내용은 프로젝트 또는 팀에 사용자 추가를 참조 하세요.
질문 & 답변
Q: 배포에서 보고를 사용합니다. 컬렉션을 분할할 때 수행해야 하는 추가 단계가 있나요?
A: 예, 두 컬렉션에 고유한 프로젝트 집합이 있도록 프로젝트 삭제를 완료한 후 보고서를 분할해야 합니다. 또한 데이터 웨어하우스를 다시 빌드해야 합니다.
프로젝트를 삭제한 후 분할 컬렉션에서 사용하는 보고서를 다른 폴더로 이동한 다음 원래 폴더에서 삭제합니다.
Important
보고서 폴더는 두 위치에 모두 있습니다. 보고서 폴더를 삭제하기 전에 모든 보고서를 적절하게 이동해야 합니다.
보고서를 별도의 폴더로 분할
- 보고서 관리자에서 분할 컬렉션을 지원하는 보고서를 해당 컬렉션에 적합한 폴더로 이동합니다. 자세한 내용은 항목 이동 페이지를 참조 하세요.
보고서를 분할하고 두 컬렉션을 모두 시작한 후에는 Azure DevOps용 웨어하우스와 Analysis Services용 데이터베이스를 다시 빌드합니다. 컬렉션을 분할한 후 배포에 대해 보고서 및 대시보드가 올바르게 작동하고 배포의 다른 컬렉션과 충돌이 발생하지 않도록 하려면 이 단계를 수행해야 합니다.
데이터 웨어하우스 및 Analysis Services 데이터베이스 다시 빌드
Azure DevOps에 대한 관리 콘솔을 엽니다.
탐색 모음에서 보고를 선택합니다.
보고에서 다시 빌드 시작을 선택합니다.
웨어하우스 및 Analysis Services 데이터베이스 다시 작성 대화 상자에서 확인을 선택합니다.
참고 항목
웨어하우스는 계속 다시 작성되며 다시 빌드 시작 작업이 완료된 후에도 데이터가 계속 다시 채워질 것입니다. 배포 크기 및 데이터 양에 따라 전체 프로세스를 완료하는 데 몇 시간이 걸릴 수 있습니다.