当前数据库服务器:SQL Server 2005 - Windows Server 2003 新目标数据库服务器:SQL Server 2005 - Windows Server 2003 Enterprise - VM Ware 映像
当前的数据库服务器上有 20 多个数据库,一些应用程序数据库......其他基础设施类型数据库(Citrix)。我们希望将所有这些数据库移动到一个新构建的虚拟化盒子中。
所以进一步总结 - 是的,这是物理到虚拟的。- 20 多个数据库转移到这个新的虚拟 SQL 2005 盒子。- 这个盒子上的应用程序需要最少的停机时间。
我能想到的几种方法(都将被测试): 1. 第三方物理到虚拟转换器 - 然后关闭旧盒子。
- 关注 = SID 关联,Windows 或 SQL Server 不喜欢这个。
一次将所有数据库移动到新服务器 - 关闭旧服务器,将新虚拟机上的主机名更改为旧主机名。
一次全部移动,但为新框使用不同的主机名 - 这允许并行运行以防万一出现问题 - 挑战 = 必须在每个应用程序中更改主机名 - 可能会出现问题。
分阶段移动每个数据库——这也意味着一个新的主机名和一个更长更冗长的项目。
其他人有类似的场景吗?
我们从单个 SQL 服务器迁移到新的 SQL 集群(所有新硬件)。大约 70 个数据库。我们这样做的方式是分离数据库,复制文件,然后将数据库附加到新的 SQL 节点。
我们被迫更新主机名,但我会让旧主机脱机并使用相同的主机名。你总是可以这样切换回来。
减少停机时间的一种方法是使用从一台服务器到另一台服务器的日志传送。这需要重新指向应用程序配置,但它的好处是减少了停机时间。一般来说,流程如下:
几点注意事项:
优点:
缺点:
所以,有一个权衡,但这种方法是有效的,它是一种足够普遍的技术。
埃里克-
并行运行可能会在您制作副本和相应地更新副本之间更改数据。更新应用程序以指向新的主机名也可能会导致悲伤。
我建议使用并行设置来测试每个应用程序,但一旦对测试感到满意,我可能会使用 Detach/Attach: How to move SQL Server databases to a new location by using Detach and Attach functions in SQL Server
根据我的经验,p2v 是一个出色且快速的选择,但如果您想最大限度地减少停机时间,这并不理想。我只会在现有服务器不乱且虚拟化仅用于硬件合理化时才使用它。(即您没有重命名该框,将其放入新的 AD 等中。)
如果您使用 p2v,SQL Server 和 Windows 就可以了,但您需要在启动 p2v 之前停止 SQL Server 服务。Windows SID 等都将保持不变,Windows 不喜欢的是连接到同一网络的物理和虚拟服务器。
如果您使用附加/分离方法,请确保您还复制:
建立新的基础设施并进行切换意味着更少的停机时间,但需要更多的工作。如前所述,服务器“切换”的日志传送是执行此操作的最快方法,尤其是在您拥有大型数据库的情况下。
如果您有几美元要花,例如 300.00 左右,请查看 idera 管理工具集。一款优秀的软件。我在最近的一个项目中使用了它。它移动了数据库和任何相关对象,包括用户。这是值得的。在 3 次点击中,我移动了所有数据库。我仍然使用它来回移动数据库。我相信他们有试用版。您还可以获得许多其他工具,例如跨数据库移动用户或对象等。