没有技术背景的人,如何把企业的 Oracle 数据库平稳、无缝、无停机地迁移到另一个 Oracle 数据库?
可能会有人觉得这个话题很无聊,毕竟是承载企业核心数据的数据库,不会真有人拿企业的命脉开玩笑吧?但是事实上,对于技术资源有限的企业来讲,很多决策者即执行者,他们往往并没有那么深厚的技术背景,但他们有时也不得不面对数据迁移这项艰巨的任务。
这里先澄清一个概念,即数据库迁移真的不那么依赖技术,对于没有什么技术背景的人来讲,真正的重点在于如何选择一个合适的数据迁移产品。
在数据库应用越来越广泛的近几年时间里,企业对于数据迁移的需求可谓水涨船高,在上云、下云、容灾、多活、版本升级等等各式各样的场景下,数据迁移产品都扮演着极其重要的角色。Oracle 也不例外,企业在实际应用数据库的过程中,将会无可避免地出现从一个 Oracle 数据库环境迁移到另一个 Oracle 数据库环境的需求,那么对于无技术背景的操作者来说,选择数据迁移产品的重点在于产品是否具备如下能力:
全图形化傻瓜式操作:既然操作者是零基础,那么这个点是最重要的,配置过程必须不能对操作者有任何的技术要求。
全自动无人值守迁移:从库表的初始化,到数据的传输同步,再到增量数据的实时同步,整个过程应该是自动化的,无需手动干预,降低人为错误的可能性。
迁移过程不停机:这是对于业务可用性的保障,也是验证迁移产品能力的必要条件,对于 7*24 全天候运营的业务来说,不停机就意味着迁移过程对用户完全透明,最小化对业务的影响。
数据一致性校验:这一点也尤为重要,如果迁移完成后两端数据不一致,切换后将会对业务造成深刻影响。因此迁移软件必须要具备数据一致性校验的功能,这也是软件可靠性的保证。
1
迁移工具对比说明
我们选择了Oracle GoldenGate、Oracle DataPump、AWS DMS、IBM InfoSphere Data Replication、NineData 五款产品进行对比。
🟢:表示支持,且能力较强。
🟡:表示支持,但能力较弱。
🔴:表示不支持。
Oracle GoldenGate:以高性能和强大的复制功能著称,支持增量迁移和DDL操作,适合需要最小化停机时间的复杂迁移任务,但配置相对复杂。
Oracle Data Pump:易于使用,非常适合一次性完整数据库迁移,但需要停机,不支持增量迁移或 DDL。
AWS 数据迁移服务 (DMS):该工具主要面向云环境,支持增量迁移,停机时间较短。虽然对 DDL 的支持有限,但操作简便,适合混合云环境中的 Oracle 数据库迁移。
IBM InfoSphere Data Replication:高性能复制工具,支持增量迁移和 DDL,能够保证数据一致性,停机时间短,但配置相对复杂。
NineData:以易用性和高性能著称,用户友好,支持增量迁移、DDL 操作,并确保最小化停机时间。此外,NineData 提供强大的数据一致性校验,同时赠送一条 Micro 规格(每秒 200 条数据)的增量复制链路。
2
NineData 的特性
简单介绍一下 NineData 数据复制,它是玖章算术公司于 2022 年推出的支持多云多源的数据库复制迁移产品,其数据复制能力可以轻松地在同、异构数据源之间进行数据传输,支持大几十种数据源,已经被数十家中大型企业客户采用,在生产环境中稳定运行了两年以上。NineData 具备如下优秀的特性:
2.1 表结构智能初始化
NineData 提供结构复制功能,能够自动化将源表的库表结构复制到目标,完全无需用户手动干预,轻松完成大量表结构的自动初始化。
2.2 迁移过程业务不停机
NineData 提供结构迁移、全量数据迁移及增量数据迁移能力。在数据库迁移过程中,源端可正常提供服务。NineData 可自动完成结构迁移、全量数据迁移,并自动启动增量数据的实时监听、采集、解析及复制能力,源端的增量更新数据(包含 DDL 操作)会被实时复制到目标中。
2.3 强劲的复制性能
NineData 数据复制针对 Oracle 进行深度性能优化,基于日志分析、智能分片、动态攒批、数据合并、特有数据格式等技术,有效保障全量数据复制、增量数据复制的性能。当前实测 Oracle 到 Oracle 的全量复制性能接近 300 GB/小时,增量数据复制性能超过 2 万记录/秒。
2.4 完善的数据质量保障方案
NineData 提供了多种数据一致性校验方案,包括全量精准校验、快速验及增量校验,可以对迁移数据进行数据一致性强验证。同时,当出现数据不一致时,能够提供一键修复能力。基于 NineData 数据一致性校验能力,可以有效规避因数据质量导致的业务迁移故障。
3
步骤一:录入源和目标数据源
1. 登录 NineData 控制台,单击数据源管理>数据源,然后在页面中单击创建数据源,选择需要录入的数据源。
2. 根据页面提示进行配置,然后单击创建数据源完成创建。
4
步骤二:配置同步链路
1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击创建复制。
2. 根据页面提示配置复制任务,由于我们想要实现实时数据同步,需要在复制类型处额外勾选增量复制。
5
步骤三(可选):校验目标端同步数据的完整性
除了同步功能以外,NineData 还提供了同步后源端和目标端同步数据的对比功能,以确保目标端数据的完整性。
1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击步骤二中创建的复制任务。
2. 单击数据对比页签,即可展示对比结果(如果步骤二的任务配置中未勾选开启数据一致性对比,则此处还需要单击开启数据对比)。
3. 您可以在一段时间后,单击页面中的重新对比,校验最新增量数据的同步结果。
6
步骤四(可选):配置任务异常告警
由于数据量过于庞大,您可能需要系统实时监控任务状态,在任务有异常时即刻通知您。
1. 登录 NineData 控制台,单击数据复制>数据复制,然后单击步骤二中创建的复制任务 ID。
2. 单击右上角的配置告警。
3. 输入策略名称,单击保存配置即可。您可以直接使用内置的默认规则,在任务运行失败,或复制延迟大于等于 10 分钟的时候,发送短信提醒您。您也可以自定义创建规则,根据您的需求来进行通知。
7
最后
至此任务配置就告一段落了,抛开可选步骤,实际数据复制的配置仅需 3 分钟不到即可搞定,剩下的就交给 NineData 全自动化处理。
通过任务详情页面,可以查看实时任务进度,基于延迟信息可以判断目标 Oracle 是否已经追平源端,以此为依据决策业务割接时间,确保业务的可用性。
配置完告警后,任务出异常将会立刻通过用户配置的接收方式发送告警,无需人员值守,迁移过程轻松愉快。