PostgreSQL 是一种备受开发者和企业青睐的关系型数据库,其丰富的数据类型、地理空间负载和强大的扩展能力等特性使其备受欢迎。然而,在企业使用 PostgreSQL 承载应用的过程中,由于业务需要上云、跨云、下云、跨机房迁移、跨地域迁移、数据库版本升级、扩缩容等场景的普遍存在,因此需要进行 PostgreSQL 的迁移。
在 PostgreSQL 迁移过程中,迁移时间、数据准确性和业务停机要求是影响迁移成功的关键因素。因此,选择合适的迁移工具至关重要,以提供高效、安全、准确的迁移能力。传送门:迁移工具NineData
1. 传统的迁移方案
当前,常见的 PostgreSQL 迁移方案为备份恢复、pg_dump/pg_restore,这两种迁移方案普遍存在如下的问题:
- 停机时间长,上述方案通常要求,在数据库迁移期间,业务停止服务,停服时间通常高达数小时/上天,对业务的挑战极大。特别当迁移难度较高时,通常反复多次迁移,业务停服时间更不可控。
- 可靠性不高,客户端工具不提供迁移过程的观测、诊断与修复能力,很容易出错。
- 数据准确性难保障,此类工具因不提供对应的质量检测能力,所以迁移的数据质量一般难以保障。
- 大数据量迁移挑战,因其性能及容灾能力不足,不能很好支撑大数据量、大表的迁移。
2. 业务不停机迁移方案
为了解决用户在 PostgreSQL 迁移过程中可能面临的问题,玖章算术旗下的云原生智能数据管理平台 NineData 推出了 PostgreSQL 业务不停服数据迁移能力。NineData 实现了完全自动化的结构迁移和全量数据迁移,并且还提供了变更数据的迁移能力。这种能力可以实时监听源 PostgreSQL 中的变更数据,在完成全量迁移后将变更数据实时复制到目标 PostgreSQL,从而实现源/目标 PostgreSQL 的动态复制。在 PostgreSQL 数据迁移过程中,业务可以正常提供服务,无需停服。最终,业务可以根据需求选择对应的时间点切换到目标 PostgreSQL。具体流程请参见下图。
PostgreSQL数据迁移过程|NineData
除了提供业务不停服的迁移能力外,NineData 提供的 PostgreSQL 还具有如下能力:
- 大数据量或大表的迁移能力,基于智能分片、动态攒批、并发迁移、表级断点续传等多种技术能力,提供强劲迁移能力。
- 结构及数据一致性对比,NineData 提供了 PostgreSQL 的结构对比及数据对比能力,能够进行高效的一致性对比,快速识别差异对象或数据,并提供对应的订正 SQL,快速订正修复差异内容,有效保障迁移数据质量。
- 可观测可干预能力,NineData 提供详细的迁移状态、进展及详情信息,当出现迁移异常时,会提供多种诊断修复能力,帮助您保障任务稳定性。同时,提供迁移限流能力,您可根据业务需要,自定义迁移速度,保障 PostgreSQL 的稳定性。
3. 一分钟启动全自动化迁移
虽然提供了比较强大的 PostgreSQL 的迁移能力,但是 NineData 使用起来非常简单,只需要花 1 分钟时间完成任务配置,即可以完全自动化完成数据的迁移过程。下面我们来看下整个任务的配置过程:
1. 配置复制任务
基于上述操作即可轻松、可靠得完成 PostgreSQL 的数据迁移。完成 PostgreSQL 任务配置后,NineData 会自动进行结构迁移、全量数据迁移及增量数据复制。
当数据迁移完成后,也可以配置对应的结构对比、数据对比进行结构一致性及数据一致性的校验。下面会进行对比任务的配置演示。
2. 结构对比
3. 全量数据对比
4. 写在最后
除了 PostgreSQL,NineData 还支持数十种常见数据库的迁移和复制。除了 SAAS 模式,NineData 还提供企业专属集群模式,以满足企业对于数据安全和合规性的最高要求。目前,NineData 已在运营商、金融、制造业、地产、电商等多个行业完成大规模应用实践。传送门:https://www.ninedata.cloud/dbmigration