[TFS] TFS 2010 备份 Team Foundation Server (TFS 2010 Backup Team Foundation Server)

本文将分别呈现 [MSDN] 与 [Power Tools] 两者运行方式,并探讨彼此间作业事项,相信会让您更了解 TFS 2010 的备份原理~~


人是视觉性的动物,文字是比不上图文来的便于了解,本文是为了个人备忘使用的,相信能帮助到一些跟我一样健忘的人~~

本文将分别呈现 [MSDN] 与 [Power Tools] 两者运行方式,并探讨彼此间作业事项,相信会让您更了解 TFS 2010 的备份原理~~

文章标题索引

备份方式有何差异?

备份那些数据库呢?

安装 Power Tools

建立一个备份计划

备份计划做了些什么呢?

手动触发备份

示范环境:TFS 2010 Single Server in Win2008R2+SQL2008R2+TFS2010。

※ 详细设定内容请至微软 MSDN 管理 TFS 文档库 网站了解。

※ 参考资源: My ALM Blog

P.S. 若您想了解更多 TFS 资讯,请参考‘Team Foundation Server 指南’。

 

备份方式有何差异?

下表中列示了两者之差异。

 

作业事项

MSDN

Power Tools

备份路径

磁盘或磁带

网络路径

备份 Reporting Services 加密金钥

Reporting Services 组态管理员

Backup Plan Wizard

标示事务

Tbl_TransactionLogMark

tbl_TfsTransactionLogMark

标示事务时使用

sp_SetTransactionLogMark

prc_TfsSetTransactionLogMark

执行标示事务方式

sp_SetTransactionLogMarkAll

TfsConfigPT.exe

执行标示进程

数据库维护计划

TfsConfigPT.exe

排程控制方式

数据库维护计划 (SQL Job)

工作排程器 (OS Job)

 

备份那些数据库呢?

名称

标示事务?

用途

Tfs_Configuration

V

Team Foundation Server 的组态数据库包含部署的目录、服务器名称和组态数据。

Tfs_Warehouse

V

仓储数据库包含的数据可用来建置 Reporting Services 所使用的仓储。

TFS_CollectionName

V

Team 项目集合的数据库包含该集合中 Team 项目的所有数据。

TFS_Analysis

 

Team Foundation Server 部署的数据来源和 Cube。

ReportServer

V

Team Foundation Server 部署的报表和报表设定。

ReportServerTempDb

V

暂时存放执行特定报表时的资讯。

WSS_Config

 

SharePoint 产品的组态数据库包含所有网站的清单。

WSS_Content

 

SharePoint 产品的内容数据库包含 Team 项目入口网站的实际内容。

WSS_AdminContent

 

SharePoint 产品的系统管理数据库包含使用者、角色和数据库的安全性资讯。

VirtualManagerDB

V

SCVMM 系统管理员主控台中所检视的资讯。

※ 标示事务字段 [勾选] 即代表须进行相关对应处理。

 

安装 Power Tools

一、下载最新版本 (笔者使用 10.0.40301.0),并可得知本次版本异动项目如下:

■ NEW – Team Foundation Server Backups

■ Updated – Microsoft Team Foundation Server 2010 Best Practices Analyzer

■ Updated – Team Explorer Enhancements

■ Updated – Team Foundation Power Tool (TFPT.EXE)

01-01

二、执行安装档 (tfpt.msi) --> 按 [执行]

01-02

三、按 [Next]

01-03

四、选择 [I accept the terms in the license agreement] --> 按 [Next]

01-04

五、选择 [Custom] --> 按 [Next]

01-05

六、检查您的 [Tfs Backup Plan] 项目是否与下图相符 --> 按 [Next]

01-06

七、按 [Install]

01-07

八、安装过程中,会在这个作业较久的时间,请费心等待~~

01-08

九、安装完成,按 [Finish]

01-09

 

建立一个备份计划

一、开始 --> 所有程序 --> Microsoft Team Foundation Server 2010 --> Team Foundation 管理主控台 --> TFS2010 --> Team Foundation Backups --> 按右边窗口中的 [Create Backup Plan]

02-01

二、进行 Backup Plan Wizard,按 [下一步]

02-02

三、开启 [文件总管] --> 将目录位置移至 [C:] --> 新增一个目录夹名称为 [TFS2010_Backup] --> 按鼠标右键,移至 [共用对象] --> 按 [进阶共用]

02-03

四、按 [进阶共用]

02-04

五、按 [权限]

02-05

六、新增 [Administrator] 使用者,并赋予 [完全控制] 权限 --> 按 [确定]

02-06

七、于下图中得知,已开启共用,其路径为 [\TFS2010TFS2010_Backup]

02-07

八、设定备份路径:

回到 Backup Plan Wizard,于 [Network Backup Path] 中填入 [\TFS2010TFS2010_Backup] --> 按 [下一步]

02-08

九、备份 Reporting Services 加密金钥:

于 [Encryption Key Password] 与 [Confirm Password] 中填入相同的密码 --> 按 [下一步]

02-09

十、按 [下一步]

02-10

十一、 选择 [Use a user account] --> 于 [Account Name] 中填入 [Administrator] --> 于 [Password] 中填入该账号之密码按 --> 按 [下一步]

02-11

十二、 选择 [No email alerts] --> 按 [下一步]

02-12

十三、 选择 [Full, Differential, and Transactional Schedule] --> 按 [下一步]

● Nightly Full Schedule:每天晚上完整备份。

● Full, Differential, and Transactional Schedule:依需求进行完整、差异与事务记录备份。

● Manual Backup Only:手动完整备份。

02-13

十四、 检视计划项目,若无问题按 [Verify]

02-14

十五、 若与下图箱符,即代表 [通过整备检查],请按 [Create Plan]

※ 若您发生了 TF254027 错误,请参考‘使用 Power Tools 建立备份计划时发生 TF254027 错误’文章。

02-15

十六、 建立备份计划完成,按 [下一步]

02-16

十七、 备份计划精灵作业成功,按 [Close]

02-17

十八、 回到 Team Foundation Backups 会看到如下图的结果

02-18

十九、 至 [C: TFS2010_Backup] 目录位置,会看到两个文件:

● ConfigPT.xml:建立出来的备份计划配置文件。

● RSKey_XXX.snk:Reporting Services 加密金钥。

02-19

 

备份计划做了些什么呢?

一、建立数据表来标示相关事务

---------- MDSN ----------

   1:  Create Table Tbl_TransactionLogMark

   2:  (

   3:  logmark int

   4:  )

   5:  GO

   6:   

   7:  Insert into Tbl_TransactionLogMark (logmark) Values (1)

   8:  GO

 

---------- Power Tools ----------

   1:  if (not exists(select * from sys.tables where name = 'tbl_TfsTransactionLogMark'))
   2:  begin
   3:      Create Table tbl_TfsTransactionLogMark
   4:      (
   5:          logmark tinyint
   6:      )
   7:      Insert into tbl_TfsTransactionLogMark (logmark) Values (1)
   8:  end

 

二、建立预存进程,提供标示事务时使用

---------- MDSN ----------

   1:  Create PROCEDURE sp_SetTransactionLogMark
   2:  @name nvarchar (128)
   3:  AS
   4:  BEGIN TRANSACTION @name WITH MARK
   5:  UPDATE TFS_Configuration.dbo.Tbl_TransactionLogMark SET logmark = 1
   6:  COMMIT TRANSACTION
   7:  GO

 

---------- Power Tools ----------

   1:  if ((not exists(select * from sys.procedures where name = 'prc_TfsSetTransactionLogMark')))
   2:  begin
   3:      declare @text as varchar(8000)
   4:      select @text='Create PROCEDURE prc_TfsSetTransactionLogMark
   5:      @name nvarchar (128)
   6:      AS
   7:      BEGIN TRANSACTION @name WITH MARK
   8:      UPDATE dbo.Tbl_TfsTransactionLogMark SET logmark = 1;
   9:      COMMIT TRANSACTION
  10:      GO'
  11:      execute (@text)
  12:  end

 

三、执行标示事务方式

---------- MDSN ----------

※ 将以下预存进程放置于 TFS_Configuration 中

   1:  CREATE PROCEDURE sp_SetTransactionLogMarkAll
   2:  @name nvarchar (128)
   3:  AS
   4:  BEGIN TRANSACTION
   5:  EXEC [ServerName].TFS_Configuration.dbo.sp_SetTransactionLogMark @name
   6:  EXEC [ServerName].ReportServer.dbo.sp_SetTransactionLogMark @name
   7:  EXEC [ServerName].ReportServerTempDB.dbo.sp_SetTransactionLogMark @name
   8:  EXEC [ServerName].TFS_CollectionName1.dbo.sp_SetTransactionLogMark @name
   9:  EXEC [ServerName].TFS_CollectionName2.dbo.sp_SetTransactionLogMark @name
  10:  EXEC [ServerName].TFS_CollectionName3.dbo.sp_SetTransactionLogMark @name
  11:  EXEC [ServerName].TFS_CollectionName4.dbo.sp_SetTransactionLogMark @name
  12:  EXEC [ServerName].TFS_Warehouse.dbo.sp_SetTransactionLogMark @name
  13:  EXEC [ServerName].VirtualManagerDB.dbo.sp_SetTransactionLogMark @name
  14:  COMMIT TRANSACTION
  15:  GO

 

---------- Power Tools ----------

运行 TfsConfigPT.exe 可执行文件时,会依 ConfigPT.xml 配置文件进行处理

03-01

※ TfsConfigPT.exe 文件位置:

C:Program Files (x86)Microsoft Team Foundation Server 2010 Power ToolsTeam Foundation Server Backup Plan

03-02

四、执行标示进程

---------- MDSN ----------

[数据库维护计划] 运行时,会至 TFS_Configuration 中执行以下语法:

EXEC sp_SetTransactionLogMarkAll 'TFSMark'

 

---------- Power Tools ----------

运行 TfsConfigPT.exe 可执行文件时,会执行以下语法:

   1:  begin
   2:      declare @text as varchar(8000)
   3:      select @text='exec prc_TfsSetTransactionLogMark TfsMarkTfpt'
   4:      execute (@text)
   5:  end

 

五、排程控制方式

---------- MDSN ----------

于 [数据库维护计划] 中进行控制:

完整备份的计划命名为 TfsFullDataBackup。

差异备份的计划命名为 TfsDifferentialBackup。

事务记录备份的计划命名为 TfsTransactionLogBackup。

 

---------- Power Tools ----------

于 [工作排程器] 中进行控制

03-03

 

手动触发备份

若您有特殊需求,Power Tools 亦提供了可手动触发备份方式,以下为 Power Tools 备份时所下达的 SQL 语法:

P.S. 不同的环境,将会对应不同的设定,下表为本文的设定。

备份项目

语法

Database

BACKUP DATABASE [Tfs_Configuration] TO  DISK = N'\TFS2010TFS2010_BackupTfs_Configuration_20110727094635F.bak' WITH  DESCRIPTION = N'Tfs_Configuration database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_Configuration database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [Tfs_TestCollection] TO  DISK = N'\TFS2010TFS2010_BackupTfs_TestCollection_20110727094635F.bak' WITH  DESCRIPTION = N'Tfs_TestCollection database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_TestCollection database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [Tfs_DefaultCollection] TO  DISK = N'\TFS2010TFS2010_BackupTfs_DefaultCollection_20110727094635F.bak' WITH  DESCRIPTION = N'Tfs_DefaultCollection database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_DefaultCollection database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [Tfs_Warehouse] TO  DISK = N'\TFS2010TFS2010_BackupTfs_Warehouse_20110727094635F.bak' WITH  DESCRIPTION = N'Tfs_Warehouse database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_Warehouse database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [ReportServer] TO  DISK = N'\TFS2010TFS2010_BackupReportServer_20110727094635F.bak' WITH  DESCRIPTION = N'ReportServer database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'ReportServer database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [ReportServerTempDb] TO  DISK = N'\TFS2010TFS2010_BackupReportServerTempDb_20110727094635F.bak' WITH  DESCRIPTION = N'ReportServerTempDb database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'ReportServerTempDb database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [WSS_Config] TO  DISK = N'\TFS2010TFS2010_BackupWSS_Config_20110727094635F.bak' WITH  DESCRIPTION = N'WSS_Config database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'WSS_Config database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [WSS_AdminContent] TO  DISK = N'\TFS2010TFS2010_BackupWSS_AdminContent_20110727094635F.bak' WITH  DESCRIPTION = N'WSS_AdminContent database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'WSS_AdminContent database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP DATABASE [WSS_Content] TO  DISK = N'\TFS2010TFS2010_BackupWSS_Content_20110727094635F.bak' WITH  DESCRIPTION = N'WSS_Content database - Full Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'WSS_Content database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10

Log

BACKUP LOG [Tfs_Configuration] TO  DISK = N'\TFS2010TFS2010_BackupTfs_Configuration_20110727094647L.trn' WITH  DESCRIPTION = N'Tfs_Configuration database - Log Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_Configuration database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP LOG [Tfs_TestCollection] TO  DISK = N'\TFS2010TFS2010_BackupTfs_TestCollection_20110727094647L.trn' WITH  DESCRIPTION = N'Tfs_TestCollection database - Log Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_TestCollection database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP LOG [Tfs_DefaultCollection] TO  DISK = N'\TFS2010TFS2010_BackupTfs_DefaultCollection_20110727094647L.trn' WITH  DESCRIPTION = N'Tfs_DefaultCollection database - Log Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_DefaultCollection database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP LOG [Tfs_Warehouse] TO  DISK = N'\TFS2010TFS2010_BackupTfs_Warehouse_20110727094647L.trn' WITH  DESCRIPTION = N'Tfs_Warehouse database - Log Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'Tfs_Warehouse database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP LOG [ReportServer] TO  DISK = N'\TFS2010TFS2010_BackupReportServer_20110727094647L.trn' WITH  DESCRIPTION = N'ReportServer database - Log Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'ReportServer database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10
BACKUP LOG [ReportServerTempDb] TO  DISK = N'\TFS2010TFS2010_BackupReportServerTempDb_20110727094647L.trn' WITH  DESCRIPTION = N'ReportServerTempDb database - Log Backup',  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'ReportServerTempDb database Backup', NOSKIP, REWIND, NOUNLOAD,  STATS = 10

一、回到 Team Foundation Backups --> 按 [Take Full Backup Now]

04-01

二、进行备份作业中

04-02

三、备份完成,按 [关闭]

04-03

四、开启 [文件总管] --> 将目录位置移至 [C:TFS2010_Backup],此时您会看到方才的备份档已全数放置于此

04-04

分享