情况 - 服务器运行 Windows Server 2003 和 SQL Server 2005。服务器上大约有 18 个不同的数据库。我们需要升级到 Windows Server 2008R2 和 SQL Server 2008。我们不能丢失任何数据库(如果我这样做,我知道我的生活就结束了……)
什么是最安全/最简单的方法 - 以及如何完成所有用户和角色?
答案1
您可以使用 SQL Server 2005 的“就地升级”功能到 SQL Server 2008。IIRC,您还可以使用 Windows Server 2008R2 安装程序从 Windows Server 2003 升级,因为 Windows Server 2003 仅有两个版本。
本答案主要针对 SQL Server。我建议您做以下几件事:
- 阅读微软的SQL Server 2008 升级技术参考指南。它很长,将近 500 页,但您可以略读/跳过一些部分,例如与并行升级相关的部分。其中有一节描述了“就地升级”和“并行升级”的成本和收益。
- 确保所有数据库都受您打算使用的 Windows 和 SQL Server 版本的支持。对于第三方软件,这意味着您应该询问您的供应商。您可能会发现需要升级到第三方软件的较新版本,以便该软件可以与 SQL Server 2008 正常工作。对于您自己的代码,最好在“真正”升级之前在具有新版本的 Windows Server 和 SQL Server 的服务器上彻底测试您的软件。至少,运行SQL Server 2008 升级向导,其中会指出常见的问题。
- 升级后,进行某种快速的“冒烟测试”,让用户相信他们的软件运行正常。一旦用户开始修改数据,恢复到旧版本就会变得越来越困难,因为您无法轻松地将他们的更改向后移动。
- 如果在运行新系统几天后发现问题,您可能会陷入困境,因为回退会丢失太多信息,或者您必须花费数天或数周的时间找到将数据迁移回原点的方法,如果有些方法有效而有些方法无效,情况会更糟。有些问题可能有解决方法,不值得这么麻烦。我喜欢在开始之前列出一份由所有利益相关者商定的“我们将回滚升级的原因”清单。我还希望为回滚升级的任何讨论留出一个最后期限。这听起来可能像是“第一天午饭后,我们只能使用现有的方法”。
- 升级到 SQL Server 2008 后,任何其他 您拥有的 SQL Server 2005 计算机将不再能够读取备份文件。如果您将生产备份还原到开发或测试计算机或与第三方交换备份,这一点很重要。无法从 2008 服务器创建“与 2005 兼容”的备份。SQL Server 2008能读取旧的备份,因此您已经进行的任何备份都可以被新的 SQL Server 读取。许多开发人员对此感到惊讶。
- 使用就地升级时,您无法后退,如果您要更换操作系统,则更是如此。如果可以,请在升级之前将计算机与用户更改隔离开来,并使用 Ghost 或类似程序对驱动器进行映像。如果发生灾难性事件,您应该能够回到升级之前的状态。成为优秀管理员的一半是知道如果发生灾难性事件该怎么做,因为灾难性事件发生的频率令人惊讶。
- 您应该确保在服务器离线时升级到 Windows Server 和 SQL Server 的最新服务包。
- 确保您的硬件与 Windows Server 2008 R2 兼容。这意味着要下载驱动程序并准备好用于任何不常见的硬件:RAID 卡、高级 NIC、光纤通道 HBA 等。