此方案是目前我设计的一种TFS冷备份的应急方案。在数据到位的情况下,约1小时可切换到应急服务器,使工作可正常进行。
此方案的优点是,数据库的备份非实时备份,这样可以进行多次备份,选择正确的还原点还原。
此方案的缺点是,非实时备份,且恢复需要一段时间(主要是数据强制还原所用的时间)。
注意:此方案仅为TFS的恢复,暂未包括Report Services和SharePoint相关数据!只能保证代码相关工作正常进行。
图1
环境说明:如图1,此方案一定要在域环境内部署(非域环境上也可以迁移,但是账号理论上会造成极大的麻烦),由三台服务器组成,
A服务器:TFS 应用层,安装有TFS2008 Sp1
B服务器:TFS数据层,安装有Sql2005 Sp3
C服务器:应急服务器,他安装了TFS应用层与数据层,实际上,此机器已经部署完毕,他可以作为一个正常的TFS使用。
数据库备份:
我们要对"B服务器:TFS数据层"进行备份,可以有个计划任务,如每周做完全备份,每天做增量备份。这样可以对一周内的任意一天做恢复。
数据库还原
选择要还原的数据库,将其强制还原到"C服务器:应急服务器"的数据库中(TFS的核心数据库共7个,参照《TFS 2008的7个库》,还原后可保证最基本的代码编辑工作)
修改数据库
由于数据库中的连接并不正确,因此要参照《TFS 2008的7个库》来修改。这里最好能做个批处理,最方便的方法就是将需要修改的这几个表内的数据保存好,因为强制覆盖后仍然要将他们改回来。
应急使用
此时的"C服务器:应急服务器"已经可以正常使用,可临时将DNS修改。
恢复生产环境
生产环境中服务器已恢复,可按照1-4布将应急服务器内数据还原到生产环境的数据库服务器。
此方案说明:
之所以没有将C服务器仅作为数据库服务器使用,有两个原因。1,有可能A,B为同一台服务器,所以A服务器可能无法应用。2,作为TFS应用层,也需要用命令行才可链接到其数据库,可能会出现问题,将C独立出来,在域中的任何位置且保证其直接可应用,我认为更好。