在TFS双机热备的方案中,我们会用ActivateAt来做主应用服务器与备用服务器之间切换。那ActivateAt在这个过程中到底做了什么呢?
在TFS1.0版本里,一个应用服务器只能连一个数据库服务器,一个数据库服务器也只能连一个应用服务器。
在应用服务器的上的web.config文件有连接到数据服务器的连接字串,从而保证了应用服务器只会连到指定的数据库。如果要修改这个连接,可以使用RenameDT来完成。
那如果保证一个数据库只有一个应用服务器来连呢?一般来说数据库是只检查访问者的身份与权限,少有检查是哪个应用和机器发来的请求(应用程序角色除外)。TFS数据库连接也只检查来访者是否有权限访问数据,但在其数据中记录了合法访问的应用层的信息,这些信息分散在不同的表中,ActivateAt就是用来修改、同步这些信息的。
简单地说,ActivateAt做了四件事:
1. 修改了TFSIntegration数据库中tbl_subcription表中的address列,将其改为新的应用服务器名称。
2. 修改了TFSIntegration数据库中tbl_service_interface表,将以下属性绑定到新的应用服务器:
a) WssAdminService
b) BaseServerUrl
c) BaseSiteUrl
d) BaseSiteUnc
e) ReportsService
f) BaseReportUrl
g) DataSourceServer
3. 修改了TFSIntegration数据库中tbl_registration_extended_attributes表,将以下属性绑定到新的应用服务器:
a) ATMachineName
b) ATNetBIOSName
在双服务器热待机方案中,ATMachineName总是指向A记录,但ATNetBIOSName却是指向正在使用应用服务器的机器名。所以,虽然备机也一直开着,服务也正常运行,但我们用VS2005去连接是总是报错。
4. 重启IIS。
因为有ActivateAT这个工具,我们可以很方便地从一个应用服务器切到另一台备用的应用服务器,从而实现了TFS的高可用性。
打印 | 张贴于 2006-11-21 21:14:00 | Tag:暂无标签
留言反馈