Team Foundation Server 백업 이해

Visual Studio Team Foundation Server(TFS)에서 의존하는 데이터베이스를 정기적으로 백업하는 작업을 예약하면 데이터 손실이 발생하지 않도록 배포를 보호할 수 있습니다.Team Foundation 배포를 완전히 복원하려면 먼저 TFS의 모든 데이터베이스를 백업해야 합니다.배포에 SharePoint 제품 또는 SQL Server Reporting Services가 포함된 경우 해당 구성 요소 내에서 TFS가 사용하는 데이터베이스도 백업해야 합니다.동기화 또는 데이터 불일치 오류를 방지하려면 모든 백업을 같은 타임스탬프에 동기화해야 합니다.성공적 동기화를 보장할 수 있는 가장 쉬운 방법은 표시된 트랜잭션을 사용하는 것입니다.모든 Team Foundation 데이터베이스의 관련 트랜잭션을 정기적으로 표시하면 데이터베이스에 일련의 공통 복구 지점이 설정됩니다.SharePoint Foundation 2010을 사용하고 또한 보고도 사용하는 단일 서버 개발을 지원하는 단계별 지침에 대한 정보는 백업 일정 및 계획 만들기에 나와 있다.

또한 팀 프로젝트 컬렉션 데이터베이스를 원래 배포와 다른 배포에 복원하려는 경우 백업하기 전에 우선 Team Foundation Server에서 데이터베이스를 분리해야 합니다.자세한 내용은 Move a Team Project Collection을 참조하십시오.

팁

Team Foundation Server 2012에 사용할 수 있는 백업 및 복원 도구가 있습니다.해당 도구를 사용하면 배포의 유지 및 복원을 크게 간소화할 수 있습니다.전원 도구의 최신 릴리스는 here에서 볼 수 있습니다.

데이터베이스 백업

TFS에서 사용하는 데이터베이스의 백업을 만드는 것은 데이터 손실에 대해 Team Foundation 배포를 보호할 수 있는 가장 핵심적인 방법입니다.다음 표 및 함께 제공된 그림에서는 백업해야 할 데이터베이스를 보여 주고 이러한 데이터베이스가 실제로 배포되는 방식에 대한 예제를 제공합니다.

데이터베이스 형식

제품

선택적 구성 요소

구성 데이터베이스

Team Foundation Server

아니요

웨어하우스 데이터베이스

Team Foundation Server

아니요

팀 프로젝트 컬렉션 데이터베이스

Team Foundation Server

아니요

SharePoint 제품 데이터베이스

SharePoint 제품

보고 데이터베이스

SQL Server Reporting Services

분석 데이터베이스

SQL Server Analysis Services

ms253151.collapse_all(ko-kr,VS.110).gif배포 토폴로지

이 예제 토폴로지와 같이 배포 구성에 따라 백업이 필요한 모든 데이터베이스가 같은 물리적 서버에 있을 수 있습니다.이 예제에는 SharePoint 제품 또는 Reporting Services가 포함되어 있지 않으므로 보고, 분석 또는 SharePoint 제품과 관련된 데이터베이스를 백업할 필요가 없습니다.

데이터베이스가 있는 간단한 토폴로지

데이터베이스가 여러 서버 및 서버 팜에 배포될 수도 있습니다.이 예제 토폴로지의 경우 6개의 서버 또는 서버 팜에서 다음 데이터베이스를 백업해야 합니다.

  • 구성 데이터베이스

  • 웨어하우스 데이터베이스

  • SQL Server 클러스터에 있는 팀 프로젝트 컬렉션 데이터베이스

  • SQL Server를 실행 중인 독립 실행형 서버에 있는 컬렉션 데이터베이스

  • 두 개의 SharePoint 웹 응용 프로그램을 위한 SharePoint 제품 관리 데이터베이스와 사이트 컬렉션 데이터베이스

  • Reporting Services를 실행 중인 서버에 있는 데이터베이스

  • Analysis Services를 실행 중인 서버에 있는 데이터베이스

예제: 데이터베이스의 복잡한 배포

두 예제 모두 서버에 연결하는 클라이언트는 백업하지 않아도 됩니다.그러나 복원된 배포에 다시 연결하기 위해 먼저 클라이언트 컴퓨터에서 Team Foundation Server의 캐시를 수동으로 지워야 할 수도 있습니다.

ms253151.collapse_all(ko-kr,VS.110).gif백업할 데이터베이스

다음 목록에서는 배포 리소스에 따라 백업해야 할 항목에 대해 자세히 설명합니다.

주의 정보주의

다음 목록에 나오는 모든 데이터베이스는 SQL Server 데이터베이스입니다.SQL Server Management Studio를 사용하여 언제든지 개별 데이터베이스를 백업할 수는 있지만 가능하면 이러한 개별 백업을 사용하지 않는 것이 좋습니다. TFS에서 사용하는 데이터베이스는 모두 관련되어 있으므로 개별 백업에서 복원하면 예기치 않은 결과가 나타날 수 있습니다.데이터베이스를 하나만 백업하면 해당 데이터베이스의 데이터는 다른 데이터베이스의 데이터와 동기화 상태를 유지할 수 없습니다.

  • Team Foundation Server의 데이터베이스 Team Foundation Server의 논리적 데이터 계층에는 구성 데이터베이스, 웨어하우스 데이터베이스, 배포에 있는 각 팀 프로젝트 컬렉션의 데이터베이스 등을 포함하여 몇 개의 SQL Server 데이터베이스가 있습니다.이러한 데이터베이스는 모두 같은 서버에 있거나, 같은 SQL Server 배포의 여러 인스턴스 또는 여러 서버에 배포될 수 있습니다.데이터 손실을 방지하려면 실제 배포 방식에 관계없이 모든 데이터베이스를 같은 타임스탬프에 백업해야 합니다.특정 시간 또는 간격으로 실행되는 유지 관리 계획을 사용하여 데이터베이스 백업을 수동 또는 자동으로 수행할 수 있습니다.

    주의 정보주의

    Team Foundation Server 데이터베이스 목록은 정적 목록이 아닙니다.컬렉션을 만들 때마다 새 데이터베이스가 만들어집니다.컬렉션을 만들 때는 SQL Server에서 Team Foundation Server 데이터베이스를 백업할 수 있도록 유지 관리 계획에 해당 컬렉션에 대한 데이터베이스를 추가해야 합니다.

  • SharePoint 제품의 데이터베이스 배포에서 SharePoint 제품을 사용하여 팀 프로젝트 포털을 호스팅하는 경우 여러 개의 데이터베이스를 백업해야 합니다.이러한 데이터베이스는 배포가 사용하는 각 SharePoint 웹 응용 프로그램을 위한 관리 데이터베이스 및 팀 프로젝트 포털을 호스팅하는 사이트 컬렉션 데이터베이스를 포함합니다. 배포의 각 팀 프로젝트 컬렉션에 대해 별도의 사이트 수집을 사용하도록 구성하는 것이 가장 바람직합니다.팀 프로젝트 컬렉션을 Team Foundation Server에서 하나의 단위로 백업 및 복원할 수 있는 것처럼 사이트 컬렉션도 SharePoint 제품에서 백업 및 복원할 수 있습니다.배포에 포함된 하나 이상의 컬렉션에서 사이트 컬렉션 대신 사이트 또는 하위 사이트를 루트 사이트로 사용하는 경우에는 컬렉션을 완전히 백업하고 복원하지 못할 수 있습니다.자세한 내용은 팀 프로젝트 컬렉션을 사용하여 서버 구성을 참조하십시오.

    [!참고]

    데이터를 백업하려면 팀 프로젝트 포털 페이지의 웹 사이트 및 데이터베이스를 모두 백업해야 한다고 생각할 수 있습니다.그렇지만 SharePoint 제품가 데이터베이스에서 웹 사이트를 동적으로 생성한다.따라서 데이터베이스를 백업할 때에는 마찬가지로 웹 사이트에 나오는 팀 프로젝트 섹션을 백업해야 한다.만약 SharePoint 제품 안에 사용자 지정 사이트 컬렉션이나 사이트 서식 파일, 웹 파트를 만들었으나 Team Foundation 외부에 만들었다면 반드시 이들 항목을 별도로 백업해야 한다.자세한 정보는 Microsoft 웹 사이트에서 Backup (SharePoint Foundation 2010) 페이지에 나와 있다.

  • 보고 서비스 및 분석 서비스의 데이터베이스 배포에서 SQL Server Reporting Services 또는 SQL Server Analysis Services를 사용하여 Team Foundation Server의 보고서를 생성하는 경우 보고 및 분석 데이터베이스를 백업해야 합니다.그러나 복원 작업 후에 특정 데이터베이스를 다시 생성해야 합니다.

  • 보고서 서버의 암호화 키 보고서 서버에는 백업해야 할 암호화 키가 있습니다.이 키는 보고서 서버 데이터베이스에 저장되어 있는 중요한 정보를 보호합니다.Reporting Services 구성 도구 또는 명령줄 도구를 사용하여 이 키를 수동으로 백업할 수 있습니다.

백업 준비 사항

Team Foundation을 배포할 때는 자신이 만든 계정과 컴퓨터 이름, 암호 및 지정한 설치 옵션을 기록해 두어야 합니다.또한 모든 복구 자료, 문서, 데이터베이스 및 트랜잭션 로그 백업의 복사본을 안전해 위치에 보관해야 합니다.화재나 지진과 같은 재해로부터 데이터를 보호하려면 서버와 다른 위치에 서버 백업의 복제본을 보관하십시오.이렇게 하면 중요한 데이터가 손실되지 않도록 보호할 수 있습니다.가장 좋은 방법은 백업 미디어의 복사본을 세 개 만든 다음, 적어도 하나는 제어된 환경의 오프사이트에 보관하는 것입니다.

중요중요

데이터 복원 시험 작업을 정기적으로 수행하여 파일이 올바르게 백업되는지 확인합니다.시험 복원을 통해 소프트웨어 검사에서는 나타나지 않는 하드웨어 문제를 알아낼 수 있습니다.

데이터베이스를 백업하고 복원하는 경우 테이프 및 디스크와 같은 미디어에 데이터를 백업해야 합니다.다음과 같은 미디어 관리 계획을 백업 계획에 포함해야 합니다.

  • 백업 세트의 저장과 재활용을 위한 추적 및 관리 계획

  • 백업 미디어 덮어쓰기 일정

  • 다중 서버 환경의 경우 중앙 집중화된 백업과 분산 백업 중 사용할 백업 방법 결정

  • 미디어 수명을 추적하는 방법

  • 백업 세트 또는 백업 미디어(예: 테이프)가 손실될 경우 그 영향을 최소화하는 절차

  • 백업 세트의 저장 위치(온사이트 또는 오프사이트) 결정 및 이 결정이 복구 시간에 미치는 영향 분석

Team Foundation의 데이터는 SQL Server 데이터베이스에 저장되므로 Team Foundation의 클라이언트가 설치된 컴퓨터는 백업하지 않아도 됩니다.이러한 컴퓨터에서 미디어 오류나 재해가 발생한 경우에는 클라이언트 소프트웨어를 다시 설치한 후 서버에 다시 연결할 수 있습니다.클라이언트 소프트웨어를 다시 설치하면 백업에서 클라이언트 컴퓨터를 복원하는 것보다 더 완전하고 안정적인 방법이 사용자에게 제공되는 것입니다.

SQL Server의 유지 관리 계획을 사용하여 서버를 백업하면 Team Foundation 배포와 관련된 데이터베이스를 백업할 수 있습니다.Team Foundation Server의 데이터베이스는 서로 관련되어 있으므로 동시에 백업하고 동시에 복원해야 합니다.데이터베이스를 백업하는 방법에 대한 자세한 내용은 Microsoft 웹 사이트의 SQL Server의 백업 및 복원 전략 소개 페이지를 참조하십시오.

ms253151.collapse_all(ko-kr,VS.110).gif백업 유형

전체 데이터 백업(데이터베이스) 배포를 복구하려면 전체 데이터베이스 백업이 필요합니다.전체 백업에는 트랜잭션 로그의 부분이 포함되어 있으므로 전체 백업을 복구할 수 있습니다.전체 백업은 백업이 완료된 시점의 전체 데이터베이스를 나타낸다는 점에서 완전히 독립적입니다.자세한 내용은 Microsoft 웹 사이트의 전체 데이터베이스 백업 페이지를 참조하십시오.

차등 데이터 백업(데이터베이스) 차등 데이터베이스 백업은 마지막 전체 데이터베이스 백업, 즉 차등 기반 이후에 변경된 데이터만 기록합니다.차등 데이터베이스 백업은 전체 데이터베이스 백업보다 작고 빠릅니다.이 옵션을 사용하면 복잡성은 증가하지만 백업 시간을 줄일 수 있습니다.큰 데이터베이스의 경우 차등 백업은 데이터베이스 백업보다 짧은 간격으로 발생하므로 작업 손실 가능성을 줄일 수 있습니다.자세한 내용은 Microsoft 웹 사이트의 차등 데이터베이스 백업 페이지를 참조하십시오.

트랜잭션 로그를 정기적으로 백업할 수도 있습니다.이러한 백업은 전체 데이터베이스 백업 모델을 사용하는 경우 데이터를 복구하는 데 필요합니다.트랜잭션 로그를 백업하면 오류가 발생한 시점 또는 다른 특정 시점으로 데이터베이스를 복구할 수 있습니다.

트랜잭션 로그 백업 트랜잭션 로그는 데이터베이스에서 발생한 모든 수정 사항과 각 수정을 수행한 트랜잭션에 대한 일련의 기록입니다.또한 각 트랜잭션의 시작과 데이터 변경 내용을 기록하고, 필요한 경우 해당 트랜잭션 동안 수정된 내용을 취소하는 데 충분한 정보를 기록합니다.데이터베이스에서 로그된 작업이 발생함에 따라 로그 크기도 지속적으로 커집니다.

트랜잭션 로그를 백업하면 데이터베이스를 이전 시점으로 복구할 수 있습니다.예를 들어 원하지 않는 데이터를 입력하기 전이나 오류 발생 시점으로 데이터베이스를 복원할 수 있습니다.데이터베이스 백업과 함께 트랜잭션 로그 백업도 복구 전략에 포함해야 합니다.자세한 내용은 Microsoft 웹 사이트의 트랜잭션 로그 백업 작업 페이지를 참조하십시오.

일반적으로 트랜잭션 로그 백업은 전체 백업보다 리소스를 적게 사용합니다.따라서 전체 백업보다 자주 트랜잭션 로그 백업을 만들어 데이터 손실 위험을 줄일 수 있습니다.그러나 트랜잭션 로그 백업의 크기가 전체 백업보다 큰 경우도 있습니다.예를 들어 트랜잭션 속도가 빠른 데이터베이스의 경우 트랜잭션 로그의 크기가 급속히 커질 수 있습니다.이런 경우에는 트랜잭션 로그 백업을 더 자주 만들어야 합니다.자세한 내용은 Microsoft 웹 사이트의 꽉 찬 트랜잭션 로그 문제 해결 페이지를 참조하십시오.

다음과 같은 유형의 트랜잭션 로그 백업을 수행할 수 있습니다.

  • 순수 로그 백업은 일정 기간 동안의 트랜잭션 로그 레코드만 포함하고 대량의 변경 내용은 포함하지 않습니다.

  • 대량 로그 백업은 대량 작업으로 변경된 데이터 페이지 및 로그를 포함합니다.지정 시간 복구는 허용되지 않습니다.

  • 비상 로그 백업은 손상되었을 가능성이 있는 데이터베이스로부터 만들어져 아직 백업되지 않은 로그 레코드를 캡처합니다.이 백업은 작업 손실을 방지하기 위해 오류 발생 후에 만들어지며 순수 로그 데이터 또는 대량 로그 데이터를 포함할 수 있습니다.

Team Foundation Server를 성공적으로 복원하기 위해서는 데이터 동기화가 중요하므로 백업 전략의 일환으로 표시된 트랜잭션을 사용해야 합니다.자세한 내용은 Back Up Team Foundation Server을 참조하십시오.

서비스 백업(응용 프로그램 계층)

논리적 응용 프로그램 계층의 경우 Reporting Services의 암호화 키만 백업해야 합니다.팀 프로젝트 포털로 사용되는 웹 사이트를 백업해야 하는 경우를 가정해 봅니다.SharePoint 제품을 Team Foundation Server 배포의 일부로 통합한 경우 Team Foundation Server 및 SharePoint 제품의 데이터베이스 백업 과정의 일부로 포털이 백업됩니다.그렇지만 만약 통합 웹 응용 프로그램으로 생성이 안 된 웹 사이트를 지정한 경우라면 반드시 해당 사이트를 수동으로 백업 및 복원해야 한다.또한 SharePoint 제품 또는 서비스를 사용자 지정한 경우 새 서버에서 재현할 수 있도록 해당 내용을 백업하거나 기록해야 합니다.

응용 프로그램 계층을 데이터 계층보다 쉽게 백업할 수는 있지만 응용 프로그램 계층을 복원할 때 수행해야 할 단계가 많습니다.Team Foundation의 다른 응용 프로그램 계층을 설치하고, 새 응용 프로그램 계층을 사용하도록 팀 프로젝트 컬렉션을 리디렉션해야 하며 팀 프로젝트의 포털 사이트를 리디렉션해야 합니다.

기본 데이터베이스 이름

데이터베이스 이름을 사용자 지정하지 않은 경우 다음 테이블을 사용하여 Team Foundation Server 배포에 사용된 데이터베이스를 식별할 수 있습니다.앞에서 언급했듯이 일부 배포에는 이러한 데이터베이스가 없습니다.예를 들어 Team Foundation Server를 Reporting Services와 함께 구성하지 않은 경우에는 ReportServer 또는 ReportServerTempDB 데이터베이스가 없습니다.마찬가지로 Team Foundation Server에서 Lab Management를 지원하도록 구성하지 않은 경우 이름이 VirtualManagerDB인 SCVMM(System Center Virtual Machine Manager)의 데이터베이스가 없습니다.또한 Team Foundation Server에서 사용하는 데이터베이스는 둘 이상의 SQL Server 인스턴스 또는 둘 이상의 서버에 배포될 수 있습니다.

[!참고]

기본적으로 Team Foundation Server 설치 또는 작업 중에 자동으로 만들어지는 모든 데이터베이스의 이름에 접두사 TFS_가 추가됩니다.

데이터베이스

설명

TFS_Configuration

Team Foundation Server의 구성 데이터베이스에는 카탈로그, 서버 이름 및 배포의 구성 데이터가 포함됩니다.이 데이터베이스의 이름에는 Team Foundation Server를 설치한 사용자의 이름과 같은 추가 문자가 TFS_Configuration 사이에 포함될 수도 있습니다.예를 들어 데이터베이스 이름이 TFS_UserNameConfiguration일 수 있습니다.

TFS_Warehouse

웨어하우스 데이터베이스에는 Reporting Services에서 사용하는 웨어하우스를 빌드하는 데 필요한 데이터가 포함됩니다.이 데이터베이스의 이름에는 Team Foundation Server를 설치한 사용자의 이름과 같은 추가 문자가 TFS_Warehouse 사이에 포함될 수도 있습니다.예를 들어 데이터베이스 이름이 TFS_UserNameWarehouse일 수 있습니다.

TFS_CollectionName

팀 프로젝트 컬렉션의 데이터베이스에는 해당 컬렉션에 있는 팀 프로젝트의 모든 데이터가 포함됩니다.이 데이터에는 소스 코드, 빌드 구성, 랩 관리 구성 등이 있습니다.컬렉션 데이터베이스의 수는 컬렉션의 수와 같습니다.예를 들어 배포에 컬렉션이 세 개 있으면 세 개의 컬렉션 데이터베이스를 백업해야 합니다.각 데이터베이스의 이름에는 컬렉션을 만든 사용자의 이름과 같은 추가 문자가 TFS_와 CollectionName 사이에 포함될 수도 있습니다.예를 들어 컬렉션 데이터베이스의 이름이 TFS_UserNameCollectionName일 수 있습니다.

TFS_Analysis

SQL Server Analysis Services의 데이터베이스에는 Team Foundation Server 배포의 데이터 소스 및 큐브가 포함됩니다.이 데이터베이스의 이름에는 Analysis Services를 설치한 사용자의 이름과 같은 추가 문자가 TFS_Analysis 사이에 포함될 수도 있습니다.예를 들어 데이터베이스 이름이 TFS_UserNameAnalysis일 수 있습니다.

참고참고
이 데이터베이스를 백업할 수는 있지만 복원된 TFS_Warehouse 데이터베이스에서 웨어하우스를 다시 빌드해야 합니다.

ReportServer

Reporting Services의 데이터베이스에는 Team Foundation Server 배포의 보고서 및 보고서 설정이 포함됩니다.

참고참고
Reporting Services가 Team Foundation Server와 다른 별도의 서버에 설치된 경우에는 이 데이터베이스가 Team Foundation의 데이터 계층 서버에 없을 수 있습니다.이 경우 Team Foundation Server와 별도로 데이터베이스의 구성, 백업 및 복원을 수행해야 합니다.그러나 동기화 오류가 발생하지 않도록 하려면 데이터베이스의 유지 관리를 동기화해야 합니다.

ReportServerTempDB

Reporting Services의 임시 데이터베이스에는 특정 보고서를 실행할 때 일시적으로 정보가 저장됩니다.

참고참고
Reporting Services가 Team Foundation Server와 다른 별도의 서버에 설치된 경우에는 이 데이터베이스가 Team Foundation의 데이터 계층 서버에 없을 수 있습니다.이 경우 Team Foundation Server와 별도로 데이터베이스의 구성, 백업 및 복원을 수행해야 합니다.그러나 동기화 오류가 발생하지 않도록 하려면 데이터베이스의 유지 관리를 동기화해야 합니다.

WSS_Config

SharePoint 제품의 구성 데이터베이스에는 콘텐츠 데이터베이스, 사이트 템플릿, 사용자 지정 웹 파트 및 SharePoint 중앙 관리의 기타 설정과 같은 모든 사이트의 목록이 포함됩니다.

참고참고
SharePoint 제품에서 사용하는 데이터베이스를 백업하거나 복원할 때 표시된 트랜잭션을 사용해서는 안 됩니다.그러나 동기화 오류가 발생하지 않도록 하려면 SharePoint 제품 및 Team Foundation Server에 대한 백업과 복원 일정을 동기화해야 합니다.자세한 내용은 SharePoint Foundation 2010에 대한 백업 계획 만들기을 참조하십시오.

WSS_Content

SharePoint 제품의 콘텐츠 데이터베이스에는 팀 프로젝트 포털의 실제 콘텐츠가 포함됩니다.

참고참고
이 데이터베이스의 이름은 설치된 SharePoint 제품의 버전 및 설치한 사람이 데이터베이스 이름을 사용자 지정했는지 여부에 따라 달라집니다.SharePoint 제품에서 사용하는 데이터베이스를 백업하거나 복원할 때 표시된 트랜잭션을 사용해서는 안 됩니다.그러나 동기화 오류가 발생하지 않도록 하려면 SharePoint 제품 및 Team Foundation Server에 대한 백업과 복원 일정을 동기화해야 합니다.자세한 내용은 SharePoint Foundation 2010에 대한 백업 계획 만들기을 참조하십시오.

WSS_AdminContent

SharePoint 제품의 관리 데이터베이스에는 사용자, 역할 및 데이터베이스의 보안 정보가 포함됩니다.

참고참고
SharePoint 제품에서 사용하는 데이터베이스를 백업하거나 복원할 때 표시된 트랜잭션을 사용해서는 안 됩니다.그러나 동기화 오류가 발생하지 않도록 하려면 SharePoint 제품 및 Team Foundation Server에 대한 백업과 복원 일정을 동기화해야 합니다.자세한 내용은 SharePoint Foundation 2010에 대한 백업 계획 만들기을 참조하십시오.

VirtualManagerDB

SCVMM의 관리 데이터베이스에는 가상 컴퓨터, 가상 컴퓨터 호스트, 가상 컴퓨터 라이브러리 서버 및 해당 속성과 같이 SCVMM 관리자 콘솔에서 볼 수 있는 정보가 포함됩니다.

참고참고
SCVMM이 Team Foundation Server와 다른 별도의 서버에 설치된 경우에는 이 데이터베이스가 Team Foundation의 데이터 계층 서버에 없을 수 있습니다.이 경우 Team Foundation Server와 별도로 데이터베이스의 구성, 백업 및 복원을 수행해야 합니다.그러나 동기화 오류가 발생하지 않도록 하려면 표시된 트랜잭션을 사용하고 데이터베이스의 유지 관리를 동기화해야 합니다.

참고 항목

개념

배포 백업 및 복원

기타 리소스

단일 서버 배포를 새 하드웨어로 복원 [자습서]