伴随着国内数字化建设与转型的高速发展,数据规模与体量逐年激增,加之开源、云部署成为重要趋势,越来越多的组织开始考虑对现有传统数据库进行替换,以应对新的、更复杂的业务需求。
数据库的替换必然带来海量数据搬迁以及大量的数据处理程序迁移改造工作。如何进行平滑无缝的迁移并确保业务的连续和数据的一致,成为企业在数据库替换选型时不得不考量的重要因素。
►
民生银行拥抱 openGauss
作为中国大陆第一家由民间资本设立的全国性商业银行,民生银行一直坚守“为民而生,与民共生”的初心和使命,致力于为客户提供专业特色的现代金融服务,为中国银行业探索现代商业银行建设之路。
众所周知,用户的财务状况、交易记录等多种数据信息是银行的“生命线”,保证其安全是重中之重。同时,随着业务向多样化、复杂化、互联网化不断发展,民生银行原来部署的集中式传统商业数据库难以承载突然爆发的峰值压力,无法应对混合负载等挑战,且成本高、扩容难,依赖资源堆砌来保证业务连续稳定的方法已不可持续。为保障数据安全,并实现降本增效、应对业务新挑战的目标,民生银行对候选产品进行了严苛的测试与评估,最终选择性能优秀的 openGauss 进行关键业务场景数据库替换改造工作。
►
数据库迁移关键词:兼容、稳定、连续
在确定 openGauss 作为替换原有数据库的产品后,摆在民生银行面前的一个难题是如何高效实现异构数据库之间的数据库对象和全量数据的完整迁移。
民生银行 2021 年年报显示,公司仅零售客户数(指客户状态正常的个人客户〔含 I、II、III 类账户〕、纯信用卡客户、小微企业法人客户)就达到了 11,013.78 万户,比上年末增长 5.41%,再加上其他类型客户,银行的业务数据总量可想而知。如果纯靠手工进行迁移,工程量巨大,势必对公司正常业务的开展产生影响。因此,客户需要成熟的迁移工具来提升异构数据库迁移效率。
民生银行主要是将数据从 Oracle、MySQL、DB2 等数据库向 openGauss 迁移。客户要求迁移工具能够很好地适配不同类型数据库,并且融入 openGauss 生态。据了解,各系统需要迁移的数据量从几十 GB 到几十 TB 不等,迁移完成后,所有数据必须完整准确,保证可用性。另外,为更好地向银行客户提供服务,迁移过程需要保障系统的稳定性和业务的连续性。
当然,民生银行也遇到了一些数据库迁移的普遍难题,比如 SQL 语法转换。在迁移的过程中,SQL 相关的数据库对象,比如表、存储、函数等都可能出现不兼容的情况,迁移工具必须做到准确识别不兼容 SQL。
►
MTK 为 openGauss 平滑替换保驾护航
事实上,为了让数据库替换走得又稳又远,民生银行采用稳妥的三方合作模式进行系统建设。银行负责数据库产品测试、应用改造和上线运维;openGauss 社区主要承担数据库核心功能开发和生态建设等任务;云和恩墨作为第三方厂商,负责产品缺陷修复、技术支持和周边工具开发,MTK 便是其中之一。
MTK 是云和恩墨数据库 MogDB 配套的数据库迁移工具(Database Migration Toolkit)。 由于 MogDB 是基于 openGauss 内核打造的企业级关系型数据库商业发行版,所以在以 openGauss 为目标库的迁移任务上,MTK 在适配兼容等方面具有天然优势。另外,MTK 支持源库为 Oracle、DB2、MySQL 的数据库迁移,可以说完美地匹配了民生银行的迁移需求,成为推动客户数据库替换的有力工具。
MTK 在民生银行系统部署完成后,仅执行六条命令就可以完成迁移任务,具体是:
配置文件检查:./mtk -c config.json config-check,查看文件是否有语法错误。
迁移前测试:./mtk -c config.json --preRun,提前查看迁移过程中可能出现的问题,预估完成整个迁移任务的时间,以便协调好暂停业务的时间窗口。
接下来,民生银行根据自身业务需求进行分步迁移,实现在迁移过程中准确定位问题,降低迁移任务对系统的影响。
表结构:./mtk -c config.json mig-tab-pre
数据迁移:./mtk -c config.json mig-tab-data
索引/约束对象迁移:./mtk -c config.json mig-tab-post
存储过程/函数迁移:./mtk -c config.json mig-tab-other
针对数据库迁移中的 SQL 语法转换难题,MTK 内嵌了多个 SQL 规则,已经实现大部分的语法转换。另外,为方便用户直观地了解迁移状态以及迁移遇到的问题,MTK 参数配置 reportFile 后会生成 HTML 报告,内容详实,展示迁移过程中每一步的 SQL 语句,用户可以直接查看问题 SQL 并进行修改。
MTK 将数据从 Oracle、DB2 等数据库向 openGauss 迁移的工作得到了民生银行的认可。在整个迁移过程中,MTK 表现稳定,保持了每小时 1TB 的迁移速度,保证了数据一致性和业务平稳运行。截至 2022 年底,云和恩墨已经为民生银行完成 100 套异构数据库向 openGauss 迁移的任务。
于细微处见功夫,于极致处求精益。数据是业务系统的重中之重,保证数据零丢失、数据即时读取及数据安全是数据库迁移过程中的关键点。事实上,除了 MTK 以外,云和恩墨的 Migrate to openGauss / MogDB 解决方案还包括异构数据库迁移前的 SQL 兼容性评估工具 SCA、数据一致性校验工具 MVD,以及异构数据同步工具 MDB。通过 MogDB 数据库及其配套迁移解决方案的持续创新,云和恩墨将继续推进民生银行数据库替换工作的顺利进行。