我有两台 IIS6 服务器。
服务器 A上面运行着一些网站
服务器 B有更多网站在其上运行。
服务器 B 正在离线,我们希望在其上运行所有站点,因为它是一台规格更高的机器,并且我们正在尝试节省成本。
我需要迁移:
- IIS 6 元数据
- SQL 数据库
- 自定义 Web 应用的 DLL
- 用户帐户
- 网站文件
您认为最好的方法是什么?我开始手动移动每个站点,但这可能需要一些时间。
网站移动后,我测试它们可以正常运行,我知道我需要更新 DNS 以指向新服务器。
答案1
有些迁移点相当简单,有些则不然。我担心,根据“自定义 Web 应用程序的 DLL”的“自定义”程度,您可能需要进行大量的手动迁移。
元数据库进出口相当简单。您可以解析 Metabase(因为它只是 XML)并找到任何引用的 ISAPI DLL 并将它们迁移过去。同样,您应该能够解析 Metabase 以找到任何需要迁移的内容文件并将它们 ROBOCOPY / XCOPY 过去。(不过,在非域成员之间迁移 ACL 并非一项简单的操作。)
在非域成员服务器之间复制用户帐户和组可以通过脚本完成。
移动 SQL Server 数据库非常简单。分离/移动/附加... 重复,冲洗,重复。如果你有一个很多其中你可以编写一些 TSQL 来帮助自动化该过程。
但是,当您使用定制软件时,一切都会变得不确定。即使您知道该软件将其配置数据存储在哪里,您也可能不得不编写一次性脚本来迁移和更改配置。要警惕诸如硬编码数据库位置、IP 地址等丑陋的东西。
展望未来,这种事情是制定相当严格的文档/变更控制程序的充分理由。下次您必须这样做时,您会很高兴拥有这些文档。
还有另一种观点认为“你应该在虚拟机上运行所有这些。”你可以随时尝试对“服务器 B”机器进行 P2V,但是你需要注意可能出现的潜在操作系统和/或应用程序许可问题。