다음을 통해 공유


Team Foundation Server 백업 이해

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

데이터베이스 백업

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

데이터베이스 형식

제품

선택적 구성 요소

구성 데이터베이스

Team Foundation Server

아니요

웨어하우스 데이터베이스

Team Foundation Server

아니요

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

Team Foundation Server

아니요

SharePoint 제품 데이터베이스

SharePoint 제품

보고 데이터베이스

SQL Server Reporting Services

분석 데이터베이스

SQL Server Analysis Services

배포 토폴로지

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

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

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

  • 구성 데이터베이스

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

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

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

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

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

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

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

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

백업할 데이터베이스

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

경고

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

  • 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 제품은 데이터베이스에서 웹 사이트를 동적으로 생성하기 때문에 데이터베이스를 백업하면 팀 프로젝트에서 웹 사이트로 나타나는 섹션도 함께 백업됩니다. Team Foundation 외부에서 SharePoint 제품에 사용자 지정 사이트 컬렉션, 사이트 템플릿 또는 웹 파트를 만든 경우에는 이러한 항목을 별도로 백업해야 합니다. 자세한 내용은 Microsoft 웹 사이트의 데이터 보호 및 복구 권장 사항(Windows SharePoint Services) 페이지를 참조하십시오.

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

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

백업 준비 사항

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

중요

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

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

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

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

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

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

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

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

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

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

백업 유형

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

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

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

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

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

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

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

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

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

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

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

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

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

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

참고 항목

개념

배포 백업 및 복원

기타 리소스

SQL Server 및 Team Foundation Server