Backing Up the Team Foundation Server
To restore your Team Foundation deployment in its entirety if a failure were to occur, Team Foundation deployment requires that you create backups for each location where data is stored. Creating backups is a key aspect of protecting your Team Foundation deployment against loss. The following list summarizes what you must back up for each tier.
Data tier The Team Foundation Server data tier includes several SQL Server databases, some of which serve the team project portal sites. You can perform database backups manually or automatically by using maintenance plans that run at a specific time or at specific intervals. Team Foundation Server, SharePoint Products and Technologies, and SQL Server Reporting Services store their data in databases in SQL Server on the data tier.
Although SQL Server Management Studio allows you to back up individual databases at a time, restoring from such back ups can cause unexpected results because the databases are related and you risk restoring outdated versions.
Application tier The reporting services are located on the application tier and have an encryption key that you must back up. You can manually back up the Report Server encryption key using either the Reporting Services Configuration tool or a command-line tool. This key safeguards sensitive information stored in the report server database.
You might assume that you must back up both databases and Web sites for the team project portal pages. However, SharePoint Products and Technologies dynamically generates the Web sites from the databases. So when you back up the databases, you also back up the sections of the team project that you see as Web sites. If you have created custom site collections, site templates, or Web parts in SharePoint Products and Technologies but outside Team Foundation, you must back them up separately. For more information, see these pages on the Microsoft Web site: Backup and Restore Options for Windows SharePoint Services 2.0 or Recommendations for data protection and recovery for Windows SharePoint Services 3.0.
When you deploy Team Foundation, keep a record of the accounts that you create, and any computer names, passwords, and setup options that you choose. Always keep a copy of all recovery materials, documents, and database and transaction log backups at an offsite location.
Perform a trial data restoration periodically to verify that your files are correctly backed up. A trial restoration can reveal hardware problems that do not appear with software verifications.
When you back up and restore a database, you must back up the data onto media, for example, tapes and disks. Your backup plan should include provisions for managing media, such as:
A tracking and management plan for storing and recycling backup sets.
A schedule for overwriting backup media.
In a multi-server environment, a decision to use either centralized or distributed backups.
A way of tracking the useful life of media.
A procedure to minimize the effects of the loss of a backup set or backup media, for example, a tape.
A decision to store backup sets onsite or offsite, and an analysis of how this might affect recovery time.
To safeguard against a disaster, such as a fire or an earthquake, keep duplicates of your server backups in a different location from the location of the servers. This will help protect you against the loss of critical data. As a best practice, keep three copies of the backup media, and keep at least one copy offsite in a properly controlled environment.
Because Team Foundation data is stored in SQL Server databases, you do not have to back up the computers on which Team Foundation clients are installed. If a media failure or disaster involving those computers were to occur, reinstalling Team Foundation provides a cleaner and more reliable alternative to restoring from a backup.
You can back up a server by using maintenance plans in SQL Server to back up the databases related to your Team Foundation deployment. The Team Foundation Server databases work in relationship with one other and should be backed up at the same time and restored at the same time. For more information about strategies for backing up databases, see the following resources on the Microsoft Web site:
"Choosing the Recovery Model for a Database" for SQL Server 2005
"Introduction to Backup and Restore Strategies in SQL Server" for SQL Server 2008
Full Data Backups (Databases) A full database backup is necessary for the recoverability of your deployment. A full backup includes part of the transaction log so that the full backup can be recovered. Full backups are self-contained; they represent the entire database when the backup completed. For more information, see "Full Database Backups" for either SQL Server 2005 or SQL Server 2008 on the Microsoft Web site.
Under the full database backup model, making regular backups of your transaction logs is necessary to recovering data. With transaction log backups, you can recover the database to the point of failure or to a specific point in time.
Transaction Log Backups The transaction log is a serial record of all modifications that have occurred in a database in addition to the transaction that performed each modification. The transaction log records the start of each transaction. It records the changes to the data and, if it has to, enough information to undo the modifications made during each transaction. The log grows continuously as logged operations occur in the database.
By creating transaction log backups, you can recover the database to an earlier point in time. For example, you can restore the database to a point before unwanted data was entered or to the point of a failure. Besides database backups, transaction log backups must be part of your recovery strategy. For more information, see "Working with Transaction Log Backups" for either SQL Server 2005 or SQL Server 2008 on the Microsoft Web site.
Transaction log backups generally use fewer resources than full backups. Therefore, you can create transaction log backups more frequently than full backups, reducing your risk of losing data. However, sometimes a transaction log backup is larger than a full backup. For example, suppose a database has a high transaction rate; a high transaction rate causes the transaction log to grow quickly. In this situation, create transaction log backups more frequently. For more information, see "Troubleshooting a Full Transaction Log" for either SQL Server 2005 or SQL Server 2008 on the Microsoft Web site.
You can perform three types of transaction log backups:
A pure log backup contains only transaction log records for an interval, without any bulk changes.
A bulk log backup includes log and data pages changed by bulk operations. Point-in-time recovery is not allowed.
A tail-log backup is taken from a possibly damaged database to capture the log records that have not yet been backed up. A tail-log backup is taken after a failure in order to prevent work loss and can contain either pure log or bulk log data.
The only time a full backup must be synchronized with transaction log backups is when you start a sequence of transaction log backups. Every sequence of transaction log backups must be preceded by a full backup or full differential backup. In SQL Server, you can back up the log after the first full backup, while a full backup is running. For information about how to create log backups, see "Creating Transaction Log Backups" for either SQL Server 2005 or SQL Server 2008 on the Microsoft Web site.
The only backup performed for the application tier is for the encryption key for the Reporting Services. You might assume that you must back up Web sites or the data warehouse. However, the SQL Server databases contain all the data including page specifications and report specifications that the services request and use to create the team portal pages and the reports.
Although you have fewer steps for backing up for the services, you have more to do during recovery on the application tier. You need to restore the portal sites for the team projects.