比较联机和脱机迁移
在服务器之间迁移数据库有两种不同的方法:联机和脱机。 这些方法之间的主要区别在于应用程序的停机时间,以及使用数据库的过程。 通常情况下,脱机迁移的停机时间较长,而联机迁移的停机时间最短,中断最少。
脱机迁移特征
执行脱机迁移活动时,“脱机”这个描述是指需要在迁移活动开始之前停止与数据库关联的应用程序和工作负载。 然后,将数据或数据库从源系统迁移到目标系统并进行验证,然后重新配置应用程序以指向新位置,并重新启动工作负载。
脱机迁移活动最常见的两种方法是:用于架构迁移的备份和还原并使用 ETL(提取、转换和加载)在对象级别传输数据,或是采用复制流程。
脱机迁移通常会导致系统停机时间较长,因为执行数据迁移活动所需的时间较长。 这种停机时间会根据迁移过程中需要传输的数据量按比例增加。 带宽是有限的资源,每秒只能传输这么多数据。
我们可以对脱机迁移进行一些优化,以尽量减少必须应对的停机时间。 不过,这些优化通常会增加迁移的复杂性,从而增加出错的风险。 需要在复杂性、风险和允许的停机时间之间找到平衡。
联机迁移特征
联机迁移是指在应用程序和工作负载仍在运行时进行的迁移。 这种情况意味着,从旧数据库切换到新数据库所需的停机时间很短,对用户造成的中断也很少。
注意
即使采用联机迁移,通常也会有一个小的窗口期,应用程序必须脱机才能重定向到新的数据库位置,了解这一点很重要。 有一些方法可以使应用程序不发生停机,但这不在本模块的讨论范围之内。
联机迁移通常使用复制等数据库引擎技术,将数据从源数据库同步到目标数据库。 联机迁移活动的总体持续时间比脱机活动长,因为数据同步是在切换事件之前设置的。
在评估是否执行联机迁移时,了解同步过程对源系统的潜在性能影响非常重要。 此外,同步过程可能会有一些要求,这意味着需要在数据库中进行更改才能成功完成。
脱机与联机比较
下表简要概括了脱机迁移和联机迁移过程的主要区别。
脱机迁移 | 联机迁移 | |
---|---|---|
故障时间: | 较长 | 较短 |
复杂性 | 较低 | 较高 |
对源的影响 | 较低 | 较高 |
数据传输 | 一次性过程 | 同步 |
选择哪种方法
了解这两种迁移方法只是执行迁移的一部分工作。 在选择如何进行数据迁移之前,我们需要了解有哪些工具可供使用。