在企业上云迁移过程中,选择合适的数据库迁移方式是确保数据、迁移效率以及系统稳定运行的关键环节。Microsoft Azure 提供了多种 SQL Server 数据库迁移方式,每一种方式都有其独特的优势和适用场景。本文将详细探讨这些迁移方式,并提供选择合适迁移方式的指南。
在使用 SQL Server Management Studio(SSMS)进行数据库迁移时,可以选择“Deploy Database to Microsoft Azure SQL Database”功能。这种方法通过生成和部署一个数据层应用程序包(DAC包,文件扩展名为.dacpac)来实现迁移。尽管 DAC 包通常仅包含数据库的架构而不包含数据,但在此迁移过程中,SSMS 会将源数据库的架构和数据一起封装进 .dacpac 文件。随后,该文件被上传至 Azure,并在目标 Azure SQL Database 实例中展开,从而在 Azure 中重建原始数据库的架构和数据。

这种方法的优势在于操作简便,用户可通过图形界面直接完成迁移过程,无需复杂的命令行操作。此外,它具有较高的灵活性,不受订阅地域限制,任何网络可达的地方均可进行迁移,适合将本地 SQL Server 数据库迁移至云端。然而,这种方法主要适用于较小数据库的迁移,因为迁移过程中需将数据库内容封装成单个文件上传至 Azure,可能受到网络带宽和 Azure 服务的限制,对于大型数据库的迁移可能不是挺好选择。
2. BACPAC 文件导出
BACPAC 文件是一种包含了 SQL 数据库所有元数据和数据的压缩文件,其文件扩展名为 .bacpac。此方法适用于单一数据库的迁移场景,通过使用 BACPAC 文件,数据库的架构和数据可以被完整地导出,便于存档或迁移,导出后可存至同一租户内 Azure Storage Account 中。
要创建 BACPAC 文件,首先需要对数据库进行导出操作。这一过程可以通过 Azure 门户、SQL Server Management Studio(SSMS)或者命令行工具完成。在导出过程中,可以选择 Azure Aive Direory (AD) 认证或 Server Admin 账户进行身份验证。完成后,BACPAC 文件可以被存储至 Blob 存储或本地存储中,以便后续操作。
使用 BACPAC 文件进行数据库迁移的一个主要优势是其高度的灵活性和可移植性。BACPAC 文件不仅可以在任何支持 SQL Server 的平台上还原数据库,而且也支持跨 region 甚至跨 Azure 订阅的迁移,为企业提供了极大的操作自由度。此外,BACPAC 方法支持将数据库还原到版本的 SQL Server 上,为向下兼容提供了便利。然而,BACPAC 文件主要适用于单一数据库的场景,并且在导出或还原过程中可能会遇到大小限制或性能影响。因此,对于包含大量数据的数据库,在低峰时段进行操作,以减少对业务的影响。
3. BCP 工具
BCP 是一个非常实用的命令行工具,专为 Microsoft SQL Server 设计,用于在 SQL Server 数据库和文件(如 CSV 格式)之间进行大批量数据的快速导入和导出。通过 BCP,用户能够实现对特定数据库表格的高效迁移,无论是从数据库到文件,还是从文件到数据库。BCP 支持多种数据格式,提供了丰富的选项来自定义数据的格式化和批处理操作,从而优化数据传输过程,显著提高数据处理的效率。
BCP 的优势在于其高效的数据处理能力,能够在较短时间内导入或导出大量数据,特别适用于处理大规模数据集。此外,BCP 提供了广泛的选项和参数,允许用户根据需要定制数据的格式和批量传输的具体操作,具有较高的灵活性和自定义性。BCP 适用于数据迁移、备份或数据仓库的 ETL 过程中的数据导入导出任务。
然而,BCP 主要用于单个表格的数据导入导出,不适用于整个数据库的迁移。对于需要迁移整个数据库或多个表格的场景,可能需要结合其他工具或手段。虽然 BCP 操作本身是以离线方式进行数据的导入导出,但考虑到它可以快速处理大量数据并支持实时数据更新的需求,因此可以在表格迁移 Online(在线)模式下使用,特别是在需要频繁更新数据或实现实时数据同步的场景中。
4. 数据库迁移助手(DMA)
数据库迁移助手(DMA)是一款用于评估和执行数据库迁移计划的工具。DMA 提供详细的迁移评估报告,支持从本地到云的迁移,主要适用于 Onprem 向 Azure 云平台的迁移。DMA 可以评估迁移兼容性,准备迁移至 Azure 的数据库,适用于 Offline 大小型库迁移上云。
DMA 的优势在于其详细的迁移评估报告,可以帮助用户了解数据库迁移过程中可能遇到的问题,并提供相应的解决方案。此外,DMA 支持多云平台互迁和本地上云,具有较高的灵活性和兼容性。
5. Azure 数据库迁移服务(DMS)
Azure 数据库迁移服务(DMS)是一种支持多数据库迁移的服务,适用于复杂迁移,支持在线和离线迁移,并提供进度监控。DMS 服务本身创建受地域限制,需要配置 Selfhosted Integration Runtime 才可运行,适用于大规模或复杂的数据库迁移,特别是 Online 大小型数据库迁移场景。
DMS 的优势在于其适用于复杂迁移,支持在线和离线迁移,并提供迁移进度监控,适用于大规模或复杂的数据库迁移场景。DMS 支持 Azure 云平台跨租户和本地上云,具有较高的灵活性和兼容性。
6. SQL Package 工具
SQL Package 工具是一种用于数据库的导入导出的工具,具有高度可控与透明的特点,支持详细的错误日志和调试。SQL Package 工具需要安装命令行运行环境,不支持 Symmetric Key,适用于大数据量迁移优化和详细日志需求的迁移场景,特别是 Offline 迁移小型库。
SQL Package 工具的优势在于其高度可控与透明,支持详细的错误日志和调试,适用于大数据量迁移优化和详细日志需求的迁移场景。SQL Package 工具支持多云平台互迁和本地上云,具有较高的灵活性和兼容性。
7. TSQL 复制数据库
使用 TSQL 脚本可以将数据库复制到不同订阅或资源组下的服务器,具有灵活性,支持跨订阅迁移,无需额外工具。TSQL 复制数据库需要额外的权限配置,限 SQL 认证,适用于跨订阅或账户迁移,需要编程控制的场景,特别是 Offline 迁移小型库。
TSQL 复制数据库的优势在于其灵活性,支持跨订阅迁移,无需额外工具,适用于跨订阅或账户迁移,需要编程控制的场景。TSQL 复制数据库支持多云平台互迁和本地上云,具有较高的灵活性和兼容性。
8. 数据库副本
在 Azure SQL Database 环境中,数据库副本功能允许用户配置数据的自动同步至一个或多个副本数据库。这一配置完成后,所有数据变化将实时同步到的副本数据库中。通过执行 Failover 或 Force Failover 操作,主数据库(Primary)和副本数据库(Secondary)之间的角色可以互换,这使得原本仅支持读操作的副本数据库转变为可以进行读写操作的主数据库。
数据库副本的优势在于其操作简便,用户可以轻松配置副本,实现数据的自动同步,无需复杂操作。此外,主数据库使用 vCore 计价模式时,创建副本可以选择 Geo 模式或 Standby 模式。Standby 模式更节省成本但副本不可读,而 Geo 模式副本可读取。一个主数据库可以有多个副本数据库,增强读取性能和业务灵活性。
然而,数据库副本功能存在地域和订阅限制,副本只能部署在同一订阅和地域内的不同 SQL Server 实例上,数据库名称和定价层在迁移后不能更改,需与主数据库一致。基于数据库副本的自动同步机制,使用 Online(在线)同步模式。这种方式了数据的实时同步和业务的无缝迁移,非常适合需要高数据一致性和业务连续性的场景。
9. 数据库还原
通过 Azure 云平台门户,用户可以轻松地选择某一特定时间点的还原文件来还原单一数据库。可选的还原点时间范围依赖于为目标数据库配置的备份策略。这个功能尤其适用于需要快速回滚到数据的先前状态的场景,比如错误的数据操作或系统故障后的恢复。
数据库还原的优势在于操作的简便性和灵活性。用户可以根据需要选择多个还原点,而且这种操作不会影响到源数据库的正常运行,极大地减少了数据恢复的复杂度和所需时间。这一点对于企业数据的高可用性和业务连续性至关重要。
尽管数据库还原方法提供了高度的便捷性,但它存在一些限制。主要的限制是只能将数据库还原到同一 SQL Server 实例上。此外,还原操作受到地域、订阅和资源组的限制,这可能影响跨地域或跨订阅的灾难恢复计划的实施。鉴于操作的特性,建议采用 Offline(离线)模式进行数据库的还原操作。这样可以确保在还原过程中不会对源数据库产生任何影响,同时确保数据的一致性和完整性。
10. 数据库复制
通过数据库复制功能,用户可以在同一订阅和资源组下的任意 SQL Server 实例间创建数据库的副本。这个过程不仅简单而且不会影响源数据库的运行状态,使其成为进行数据库迁移或快速扩展的理想选择。
数据库复制的优势在于其操作简便,用户可以轻松配置副本,实现数据的自动同步,无需复杂操作。此外,主数据库使用 vCore 计价模式时,创建副本可以选择 Geo 模式或 Standby 模式。Standby 模式更节省成本但副本不可读,而 Geo 模式副本可读取。一个主数据库可以有多个副本数据库,增强读取性能和业务灵活性。
然而,数据库复制功能存在地域和订阅限制,副本只能部署在同一订阅和地域内的不同 SQL Server 实例上,数据库名称和定价层在迁移后不能更改,需与主数据库一致。基于数据库副本的自动同步机制,使用 Online(在线)同步模式。这种方式了数据的实时同步和业务的无缝迁移,非常适合需要高数据一致性和业务连续性的场景。
11. 数据同步
利用 Azure SQL Database 中的数据同步功能,通过配置同步组(Sync Group)实现数据库间的数据同步。首先,添加一个中心数据库(Hub Database)作为同步的源头。随后,根据需要选择同步的方向,例如“to hub”(向中心数据库同步)或“from hub”(从中心数据库同步)。接着,为每种不同的同步需求添加不同的同步组,并在每个同步组中添加成员数据库(Member Database)。每个同步组都可以配置特定的数据库表,以及如何以及何时同步这些表,包括同步的频次。
数据同步功能的优势在于其高度灵活的同步策略,允许用户根据实际需求定制数据同步的细节。这种配置方式支持高度灵活的同步策略,允许用户根据实际需求定制数据同步的细节。
综上所述,Microsoft Azure 提供了多种 SQL Server 数据库迁移方式,每一种方式都有其独特的优势和适用场景。在选择合适的数据库迁移方式时,应根据企业的具体需求、数据库的规模和复杂性、网络带宽和 Azure 服务的限制等因素进行综合考虑。通过合理选择和使用这些迁移方式,企业可以确保数据的、迁移的效率以及系统的稳定运行,顺利实现上云迁移。