当一位依赖于微软 SMS 进行远程管理的人不得不升级为SMS 2.0 时,他面临的有两大难题:一是在软件分发和远程控制方面实现最小暂停服务时间的平稳过渡,一是对当前正在传输的数据(advertisements)以及接收数据的客户端的计算机组(collections)的信息的保持。这两个问题是互相依赖的,而且,在进行升级的时候还必须考虑由于服务器正在执行数个任务(IIS/PDC/DNS)而不能对整个服务器进行重新安装,这就使得这项工作显得非常有趣。
SMS 2.0 相对于以前的版本有明显的改进,尤其是增加了计量软件。远程控制采用的是TCP 而不是UDP协议,增强了可靠性。内建的工具可以备份你的整个端点,同时还可以进行数据库维护。Microsoft SQL Server 7.0 采用了微软管理控制台软件(MMC)和 SMS 2.0 以及改进数据库维护的向导式设计。SQL 7.0 最大的改进是内存和设备占用量的动态调整:其空间可以根据需求进行自动调整。
服务器端的升级方法有两种:你可以选择仅仅是把当前数据库导出到某个程序如 Crystal Reports,然后把软件进行独立NT服务器(无域名控制器要求)进行重新安装,然后安装一个SMS 2.0 和SQL 7.0 。然而,这样做需要重新导入数据库,而且需要重新创建collections和advertisements。你也可以在确定数据库已经备份的情况下选择将正在使用的 SMS 1.2 升级到 SMS 2.0 ,这样你还可以选择保留现有的 SQL Server 6.5 ( Service Pack5 )。但是要知道升级到 SQL 7.0 可以显著提高性能,就像刚刚提到过的那样,同时也可以增强易用性和资源的动态调整。
密歇根大学医学中心的实验室对这两种方法进行过测试。测试使用的计算机是康柏ProLiant 1600 450/Rs, 640M 内存,26GB RAID Level 5。
转换升级方式
最容易出问题的方法就是从SMS1.2升级为2.0.这种方法还需要从SQL6.5到7.0的迁移。这种升级方法完全取代了SMS1.2目录结构并在保持SQL6.5完整的情况下安装了7.0。在开始升级之前,要确保你的服务器安装了IE4.01版和MDAC2.0 SP1 以上版本。
为了正常升级到SMS2.0,准备几种预备措施是有必要的。升级过程需要高容量的临时数据库(tempdb),因此一定要确保临时数据库的容量至少要达到数据库总量的30%。SMS数据设备和交易日志也分别需要至少50M和20M的空间。而SMS1.2的缺省值为45M和10M。DBCC和NewAlloc也需要运行以验证在从6.5升级至7.0时没有数据遭到破坏。
这些步骤在SMS2.0 使用手册中有说明。然而,在 SMS 2.0 SP1 的readme文件中指出了 SMS 2.0 管理员指南中的一个升级顺序上的错误。 具体说,是SQL Server 不应该在 SMS 1.2 升级到 SMS 2.0 之前进行升级操作。
如果在你的服务器名称中出现了“-”字符,你应该运行sp_addserver来修改SQL Server的名称,因为7.0不支持这个字符。SQL Server 6.5 在安装的时候会弹出警告提示,但是会继续进行安装,而 SQL 7.0 安装程序却不会继续,直到运行了预存程序。如果你同时还在使用复件,你就需要运行一个延伸预存程序--sp_setnetname。尽管手册上没有说明,但是在向导升级程序中也有让你退出安装并执行这些过程的警告。然而,这些步骤应该同其他的措施一样需要在SMS升级之前执行。
SMS升级转换数据库无需更多的等待时间(我们测试所用的服务器有若干个客户端和机器组群)。1.2中所使用的服务账号仍然可用,尽管已经创建了另外一个SMS Service账号用于2.0 下的干净安装。SMS_Server_ Bootstrap_〈服务器名〉用于“启动”(这也是名称的由来)其它服务如SMS_Executive, SMS_Site_Backup 和 SMS_SQL_Monitor等的一种服务。进入MMC浏览你的新的collections可能会一无所获,因为这些新的服务需要几分钟的时间(依collections的大小而定)来对注册用户进行升级。同时,你将会得到“collections被锁定”的信息。
在保持SMS服务并按照手册要求操作的情况下,我们开始了SQL Server 7.0 的安装。安装过程非常顺利。由于我们采取了定制安装,安装程序收集了6.5里面所有的讨厌的东西如character set、sort order、Named Pipes 以及Unicode Collection。安装程序提示我们选择一个账号来运行SQL 服务。我们不明白为什么它不能自动选择本地的系统账号,但是我们还是对此项进行了选择并继续。
安装完毕之后,程序提示我们需要重新启动,在我们重新登录之后出现了SQL升级向导。缺省设置很正常,但是要确保你的SMS 服务没有开始。SMS 2.0 SP1 的readme文件描述含混不清并让人以为应该跳过与SMS 2.0 的readme文件中与SQL Server 升级相关的第五和第六章,但是阅读这两章是必要的,就在这两章中微软建议用户在开始运行SQL Server 7.0 安装程序时要根据手册设置SMS 服务。阅读这些内容可以让你避免很多警告信息。
如果你还没有运行sp_addserver预存程序来改正不正确的SQL 服务器名,向导程序将重新提示你进行更正。然后向导程序完成安装并对MDAC 和 MMC 进行更新。在这之后,最好将SMS 服务切换到自动执行状态并重新启动,因为这些服务已经被停止了。启动MMC for SQL 并连结到数据库,确定一切无误之后,现在可以试用一下SMS的管理控制平台了。
此时,你也许认为你已经完成了升级。然而,现在仅仅是SMS1.2 安装过的组建已经升级完毕,SMS 2.0 的新功能需要另行安装。因此,你需要重新再SMS 的安装光盘上重新运行安装程序。在安装选项中,选择“更改或恢复当前安装”,你将会看到一个你可以进行安装的选项的列表。
干净安装
在我们的第二个升级方案中,我们清除了所有的驱动并对一台独立的NT服务器进行干净安装,服务器的配置为IE 4.01, Windows NT SP4。如果计算机名称中没有“-”符号,安装SMS 2.0 的过程应该是很顺利的;如果名称中含有“-”符号,安装就不会继续。填好名称,选好SMS服务账号的密码,填好SMS 客户端的数量,安装程序将会自动进行配置。如果你选择了定制安装(我们所推荐的安装方式),客户端安装方法或者识别方法都不会被激活。之后是SQL 6.5 或 SQL 7.0 的安装。
在升级你的客户端时,如果你激活了客户端安装和识别方法,这一步将由SMS自动完成。SMS首先阅读根目录下的Sms.ini文件以及注册表中的smsrun32条目。如果在SMS 2.0 MMC下的“Windows Networking Logon Client Installation”选项被选中,Boot32wn.exe程序就会启动NT客户端的安装。如果管理平台下的“Windows NT Remote Client Installation”被选中,ccmbtldr.exe 就会启动客户端的安装。在\winnt\sms\logs下的日志文件将会引导安装过程。NT客户端的变化包括SMS程序组的删除以及控制面版applet的添加。SMS 2.0 所有的功能现在都是基于服务的了。客户端的footprint同SMS1.2相比容量增大,约为8MB 到 20MB 。