中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)
OceanBase《DB 大咖说》第 15 期,我们邀请到了中原银行金融科技部数据团队负责人,吕春雷。本文为本期大咖说的精选。
吕春雷是一位资历深厚的数据库专家,从传统制造企业、IT企业、甲骨文公司到中原银行,他在数据库技术与运维管理方面积累了丰富经验,这些经验在带领中原银行数据库团队从传统数据库向原生分布式数据库平稳升级的过程中起到了至关重要的作用。
吕春雷认为,要在DBA的职业道路上持续进步,首要的是对数据库怀有源自心底的热爱与兴趣,这是推动DBA不断前行的永恒动力;其次,需保持坚持不懈的学习态度,它如同登山者的拐杖,帮助DBA不断超越自我;最后,还需具备对生产环境的深切敬畏,这份敬畏能确保DBA对工作保持高度的责任心。
吕春雷正是将这三点贯穿在自己的工作中。在中原银行的数据库升级过程中,吕春雷是主要的技术负责人。他主导了中原银行从“小机+传统数据库”升级为“OceanBase+通用服务器”的迁移过程,目前已经完成了 30 多套系统的上线,初战告捷。本期《DB 大咖说》,吕春雷老师将分享中原银行如何顺利完成这一数据库升级,帮助银行实现从封闭架构转向开放架构。

中原地区是华夏文明的发源地和经济中心,孕育了开封、洛阳、安阳等古都的辉煌历史,在中国文明版图中拥有超然的地位。
中原银行就诞生在这样一片土地上。中原银行是河南省属城市商业银行,成立于 2014 年 12 月,拥有 18 家分行,2017 年 7 月在香港联交所主板挂牌上市,目前全行总资产突破 1.3 万亿、员工人数近 2 万名。
2021 年年底,中原银行正式启动传统数据库升级,目前,已经先后将 30 多套 MySQL、Oracle 数据库上的应用系统成功升级到 OceanBase数据库之上,为中原银行通过数据洞察客户、市场、业务,指导日常经营管理决策发挥了关键支撑作用。
一、业务面临挑战,数据库亟待升级
升级之前,中原银行的数据库主要以 MySQL、Oracle 数据库为主,均属于传统集中式数据库。这些系统虽曾稳固支撑银行业务,但随着中原银行金融业务的成长,IT 系统交易并发量和数据量不断增长,传统集中式数据库无法快速扩展来满足系统对性能、容量的需求,迫切需要具备高扩展、高性能等关键特性的数据库支撑业务持续发展。
同时,为了支撑中原银行的数字化转型战略,微服务和分布式架构先后得到了快速应用,基础软件如分布式中间件、分析型分布式数据库在行内均已部署,面向交易类的集中式数据库也已经成为转型瓶颈。
而成本也是此次数据库升级的一个驱动力。此前的信息系统数据库采用“小型机+集中存储+ Oracle ”模式,IT 运营成本长期居高不下,且近年来部分重要信息系统面临重构,亟需在兼顾基础设施成本前提下,提高重构后系统整体的处理能力。
另外,数据库作为关键基础软件之一,中原银行还需要在保证系统稳定运行前提下加快国产数据库升级进程,提高 IT 基础设施自主掌控能力。
基于上述原因,2020 年 12 月,中原银行启动了新一代数据库选型工作,吕春雷作为中原银行数据库团队负责人,重点负责本次数据库选型。
多年负责数据库运维工作的吕春雷深知其中的挑战。过去这些年,银行先后上线了大量的系统,应用类型复杂,包括自研类、外采类,还有为银行量身定制的系统,这些系统来自不同开发商,开发习惯和代码质量存在显著差异,导致升级工作非常复杂。
“虽然银行有统一的开发规范和要求,但由于各开发商的能力及代码水平的不同,系统改造和数据库升级工作复杂度较高。特别是对于那些深度使用 Oracle 数据库特性的系统,可能涉及大量复杂 SQL 语句改写,这就更需要数据库原厂的大力支持。”吕春雷说。
此外,对于深度绑定 Oracle 特性的系统改造,中原银行需要在保证系统稳定运行的前提下,探索成本更低的解决方案,以实现业务的可持续发展。
二、6 大项、79 小项测试,敲定 OceanBase
根据中原银行信息系统建设需求,结合中国人民银行的《分布式数据库技术金融应用规范技术架构》以及同业的选型经验,中原银行总结了选择数据库的核心要求:具备高稳定性、高可用、扩展性、运维性、高性能、兼容性六大特性,同时兼顾综合成本、工具平台和生态发展。
“其中,稳定性和高可用是我们最为看重的两大要求。金融业务稳定是前提,特别是在出现故障时,比如机房级故障或者服务器级故障,必须有自愈机制,这样对应用的影响才会相对最小。”吕春雷说。
其次是扩展性,需要有在线横向添加或删除节点的能力,以提高数据库性能、容量能力。吕春雷解释,扩展能力是考虑选择分布式数据库的重要原因之一。过去中原银行部署了 Oracle RAC,虽然可以通过扩容来提升存储和计算资源,但 Share everything 架构决定了 IO 处理能力无法有效扩展。
根据数据库的选型要求,中原银行对国内领先的数据库产品开展了全方位测评工作,包括基础能力测试、性能测试、高可用能力、运维能力测试、兼容性测试、安全能力测试共 6 大项、79 小项的 POC 测试工作。在这场激烈的角逐中,OceanBase 凭借其在性能、高可用、运维效率等方面的良好表现脱颖而出,成为中原银行的最终选择。
“OceanBase 不仅在性能、高可用、运维性等方面充分满足我们的需求。同时,在总体使用成本方面也具有优势。综合评定之后,我们最终选定了它。”吕春雷表示。
除此外,吕春雷还提到中原银行非常看重的若干特性。如高度兼容 Oracle 和 MySQL,并提供自动迁移工具,支持迁移评估和反向同步以保障数据迁移安全,可支撑行业核心场景升级。此外 OceanBase 的透明水平扩展能力,让业务轻松实现扩缩容,其准内存处理架构助力系统保持高性能,保证最高能支持数千节点集群,单表行数轻松突破万亿级。
三、规范先行,技术赋能,国产升级迈进一大步
数据库选型只是数据库升级的第一步,数据的迁移和业务系统的重新上线才是项目组面临的真正考验。为此,中原银行制订了周密的数据库迁移计划,大体分为系统选择、改造分析、代码改造、测试、上线、分析总结等 6 个步骤。
选择系统是第一步。吕春雷介绍,“我们认为,越是重要的信息系统面临安全性威胁风险越高,国产升级的紧迫性就更强。因此,在信息系统选择时,中原银行优先选择重要的业务系统,且并发需求较高的系统,比如面向互联网类系统、渠道类系统等。”
在确定升级的信息系统之后,第二步是细致入微的评估工作。这项工作聚焦于 Oracle 特有语法的识别与适配,然后进行针对性改造。借助 OceanBase 迁移评估工具(OMA)进行全方位采集分析和评估诊断,全面扫描 SQL 语法、表结构及数据库对象,精准判断改造要点,简化改造流程。
在完成代码的修改之后,需要按照要求完成各类测试和上线前演练,这项工作会反复进行直到满足上线要求后方可准备正式上线。
正式上线分为两个阶段,第一阶段是数据迁移,第二阶段是数据校验。这部分工作借助 OceanBase 数据迁移工具(OMS)完成,它能实现全量+增量+分批校验+反向回写,完成迁移、校验和反写整个迁移过程。
“金融行业所有变更都必须具备可回退的能力,因而非常看重反向回写功能,OMS 在整个迁移的链路中能自动完成数据类型转换、自动完成反向回写,让整个迁移过程非常顺畅。”吕春雷说。
完成数据库的国产升级之后,还需要对系统性能进行监控和性能跟踪。虽然在正式上线之前已经做了充分的测试,但依然可能出现各种突发问题,比如性能抖动等问题。
吕春雷介绍,OceanBase 运维管理工具(OCP)给这项工作带来了很多方便,OCP 可以对性能较差的 SQL 先进行限流,然后通过 hint 方式改变和绑定执行计划,保障信息系统快速恢复后再进行根因分析。
当 OceanBase 正式上线之后,总结复盘的工作非常必要,包括上线前后性能和容量使用情况,以及上线过程中存在哪些问题、如何解决的,是否需要把对应的注意事项添加到规范中。吕春雷说,虽然每次上线都会做非常周密的准备,但上线后还是会出现一些突发的问题,借助 OceanBase 交付团队的大力支持,最终问题都得到了圆满高效解决。
不过,他希望以后中原银行的数据库团队能独立解决问题。他说:“我们的要求是自己能做的尽量自己做,尽早具备自主运维能力,这样才算是真正的自主掌控。”
四、稳定运行近 2 年,各项收益显著
中原银行从 2021 年 12 月立项进行国产数据库升级,到 2022 年 11 月全栈国产 OceanBase 集群在中原银行正式上线,手机银行等业务投入使用,后来信贷系统、网联支付、支付系统等先后陆续上线,这期间还完成生产同城双中心集群切换演练。
截至目前,OceanBase 以其卓越的性能与稳定性承载中原银行 30 余套信息系统的重任,其中重要信息系统占比高达 80%以上。这一成绩不仅是技术实力的展现,也是中原银行数字化转型决心的有力证明。
随着越来越多的信息系统,尤其是众多关键业务系统迁移到 OceanBase 后,各项收益也开始逐渐显现。
第一,性能。信息系统迁移至 OceanBase 数据库后,性能不低于升级之前。“考虑到之前的数据库是专有且昂贵的硬件设备,而现在的只是通用服务器,能保持性能一致其实已经是一个很大的进步。”吕春雷解释说。
第二,成本。中原银行原来使用的是”小型机+集中存储+Oracle”的组合,现在用的是通用服务器,较传统架构具备成本优势。成本下降还体现在资源的高效利用上。现在 OceanBase 可以通过在不同的资源池之间灵活调配实现快速扩缩容,而无需重要业务系统长期分配高水位硬件资源。
第三,运维效率。由于 OCP 提供了丰富的功能使得运维效率大幅提升。比如,现在进行生产系统的同城主备集群切换可以一键完成,6 秒就可以完成切换。这和集中式数据库形成鲜明对比;OceanBase 支持多租户,在一个集群里可以同时有 MySQL 租户和 Oracle 租户,可以采用统一的标准进行监控和管控。
第四,稳定性。OceanBase 上线以来,运行相对比较平稳,即便面对服务器突发故障,也能迅速恢复,有力确保业务系统连续性不受影响,真正实现了业务对故障无感。
回顾这几年的工作,吕春雷表示,近年来在数据库升级和数据库运维中积累的经验非常重要。随着国产升级浪潮的大步推进,中原银行的国产升级进程将显著加快,这些宝贵经验将帮助中原银行更为顺利地完成国产升级工作。
他表示,接下来中原银行将推进更多系统向 OceanBase 的迁移,同时,他们还在探索如何更好地使用 OceanBase 的新特性,充分挖掘其潜能,帮助中原银行实现更大的业务价值。比如使用 OceanBase 的 HTAP 等功能、承接部分轻量级 AP 业务。
五、写在最后
在当今这个 AI 大爆发、数据已经成为企业核心竞争力的时代,金融行业新一轮角逐已经展开。为了新一轮的变革,致力于成为一流城商行的中原银行一直在倡导“数据驱动的文化”,拥有高性能与高稳定性的 OceanBase 、及其丰富的周边工具正助力中原银行信息系统更好地服务业务目标,承担社会责任,助力中原银行的业务进一步高质量发展。
特别感谢林春对本期《DB 大咖说》的支持。林春老师是中国太平洋保险数智研究院首席数据库专家,有着丰富的金融核心系统数据库升级替换经验,也是DB 大咖说栏目的第二=三期嘉宾,可移步《中国太保:先难后易,核心系统的数据库升级实践 | OceanBase 《DB大咖说》(三)》进一步了解中国太保的数据库升级实践。
相关文章:
中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)
OceanBase《DB 大咖说》第 15 期,我们邀请到了中原银行金融科技部数据团队负责人,吕春雷。本文为本期大咖说的精选。 吕春雷是一位资历深厚的数据库专家,从传统制造企业、IT企业、甲骨文公司到中原银行,他在数据库技术与运维管理…...
slam学习笔记9---ubuntu2004部署interactive_slam踩坑记录
背景:interactive_slam是一款可用于离线优化点云地图算法。部署安装容易出问题,这里记录一下。 一、安装基本流程 绝大部分跟着readme走,g2o安装使用apt安装 interactive_slam depends on the following libraries:GL3W GLFW Dear ImGui p…...
MVC模式全解析
MVC 模式:概念与架构基石 在软件开发的广袤宇宙中,MVC 模式宛如一颗璀璨的恒星,照亮了无数开发者前行的道路。它是一种经典的软件架构模式,全称为 Model - View - Controller,即模型 - 视图 - 控制器 ,将应…...
游戏引擎学习第140天
回顾并为今天的内容做准备 目前代码的进展到了声音混音的部分。昨天我详细解释了声音的处理方式,声音在技术上是一个非常特别的存在,但在游戏中进行声音混音的需求其实相对简单明了,所以今天的任务应该不会太具挑战性。 今天我们会编写一个…...
LeetCode热题100JS(44/100)第八天|二叉树的直径|二叉树的层序遍历|将有序数组转换为二叉搜索树|验证二叉树搜索树|二叉搜索树中第K小的元素
543. 二叉树的直径 题目链接:543. 二叉树的直径 难度:简单 刷题状态:1刷 新知识: 解题过程 思考 示例 1: 输入:root [1,2,3,4,5] 输出:3 解释:3 ,取路径 [4,2,1,3] 或…...
【虚拟化】Hyper-V 与 WSL 2
关于 Hyper-V 与 WSL 2 的简介 Hyper-V 是微软出的 Type-I 型 Hypervisor,根据微软官方说 WSL 2 用了 Hyper-V 架构的子集,称为虚拟机平台(Virtual Machine Platform),是 Windows 中的一个可选组件,所以你…...
力扣刷题DAY6(滑动窗口/中等+栈/简单、中等)
一、滑动窗口 找到字符串中所有字母异位词 方法一:哈希表 class Solution { public:vector<int> findAnagrams(string s, string p) {vector<int> ans;unordered_map<char, int> target;for (int i 0; i < p.size(); i) {target[p[i]];}in…...
MySQL中的共享锁和排他锁
MySQL 中的锁可以从多个维度进行分类,其中从模式上可以分为共享锁(Shared Lock,S Lock)和 排他锁(Exclusive Lock,X Lock)。 共享锁(Shared Lock,S Lock) 共…...
HarmonyOS ArkTS声明式UI开发实战教程
引言:为何选择ArkTS? 在HarmonyOS生态快速发展的当下,ArkTS作为新一代声明式UI开发框架,正在引发移动应用开发范式的变革。笔者曾在多个跨平台框架开发中经历过"命令式编程之痛",直到接触ArkTS后才发现&…...
【AI】【Unity】关于Unity接入DeepseekAPI遇到的坑
前言 由于deepseek网页端在白天日常抽风,无法正常的使用,所以调用API就成了目前最好的选择,尤其是Deepseek的API价格低得可怕,这不是和白送的一样吗!然后使用过很多本地部署接入API的方式,例如Chatbox、Pa…...
虚拟机 | Ubuntu图形化系统: open-vm-tools安装失败以及实现文件拖放
系列文章目录 虚拟机 | Ubuntu 安装流程以及界面太小问题解决 文章目录 系列文章目录虚拟机 | Ubuntu 安装流程以及界面太小问题解决 前言一、VMware Tools 和 open-vm-tools 是什么1、VMware Tools2、open-vm-tools 二、推荐使用open-vm-tools(简单)1、…...
zabbix 监控的内存溢出问题 out of memory
zabbix 由于是docker 建置 zabbix-server-server 在web端出现异常情况 经过检查发现docker status 显示Restarting (0) 4 seconds ago 频繁在重起 经过docker logs 分析查看到 __zbx_shmem_malloc(): out of memory (requested 256 bytes) 问题 191:20250306:023902.993 m…...
【DeepSeek】Ubuntu快速部署DeepSeek(Ollama方式)
文章目录 人人都该学习的DeepSeekDeepSeek不同版本功能差异DeepSeek与硬件直接的关系DeepSeek系统兼容性部署方式选择部署步骤(Ollama方式)1.选定适合的deepseek版本2.环境准备3.安装Ollama4.部署deepseek5.测试使用 人人都该学习的DeepSeek DeepSeek 作…...
升级到Android Studio 2024.2.2 版本遇到的坑
一、上来就编译报错,大概率是因为选择了替换安装,本地配置文件出错 找到本地当前版本的配置文件,删掉,重启studio就好了: 1、打开终端 2、“cd /Users/用户名/Library/Application\ Support/Google” //到Google目录 …...
2025最新Transformer模型及深度学习前沿技术应用
第一章、注意力(Attention)机制 1、注意力机制的背景和动机(为什么需要注意力机制?注意力机制的起源和发展里程碑)。 2、注意力机制的基本原理(什么是注意力机制?注意力机制的数学表达与基本公…...
深入解析 Umi-OCR:高效的免费开源 OCR 文字识别工具
1. Umi-OCR 简介 1.1 什么是 Umi-OCR? Umi-OCR 是一款开源、免费、支持离线使用的光学字符识别(OCR)工具,基于 PaddleOCR 和 Tesseract-OCR,能够高效识别图片中的文字,尤其适用于批量截图文字提取、PDF 文…...
WebAssembly技术及应用了解
WebAssembly(Wasm)是一种为Web设计的高效、低级的二进制指令格式,旨在提升Web应用的性能并支持多种编程语言。以下是对其核心概念、优势、应用场景及开发流程的系统介绍: 1. 核心概念 二进制格式:Wasm采用紧凑的二进制…...
【ESP-ADF】在 VSCode 安装 ESP-ADF 注意事项
1.检查网络 如果您在中国大陆安装,请使用魔法上网,避免无法 clone ESP-ADF 仓库。 2.VSCode 安装 ESP-ADF 在 VSCode 左侧活动栏选择 ESP-IDF:explorer,展开 advanced 并点击 Install ESP-ADF 然后会出现选择 ESP-ADF 安装目录。 如果出现…...
我的两个医学数据分析技术思路
我的两个医学数据分析技术思路 从临床上获得的或者公共数据库数据这种属于观察性研究,是对临床诊疗过程中自然产生的数据进行分析而获得疾病发生发展的规律等研究成果。再细分,可以分为独立危险因素鉴定和预测模型构建两种。 独立危险因素鉴定是一直以…...
MySQL 架构、索引优化、DDL解析、死锁排查
私人博客传送门 MySQL 认识索引 | 魔筝炼药师 MySQL 索引优化 | 魔筝炼药师 OnlineDDL(在 MySQL 5.7 数据库里,InnoDB引擎,执行一条DDL会发生什么事情) | 魔筝炼药师 MySQL 死锁排查 | 魔筝炼药师...
Ubuntu搭建最简单WEB服务器
安装apache2 sudo apt install apache2 检查状态 $ sudo systemctl status apache2 ● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>Active: active (running) since Thu 2025-03-06 09:51:10…...
VSCode 配置优化指南:打造极致高效的前端开发环境
VSCode 配置优化指南:打造极致高效的前端开发环境 一、基础环境配置:让开发更流畅 1. 性能优化设置 // settings.json {"files.autoSave": "afterDelay", // 自动保存(延迟1秒)"files.exclud…...
FPGA-DE2115开发板实现4位全加器、3-8译码器。
文章目录 一、安装quartus二、4位全加器三、3-8译码器(8段数码管)四、参考文章 一、安装quartus 安装quartus参考文章:Quartus Prime 18.0与ModelSim的安装 Quartus II 18.0安装教程(非常详细)从零基础入门到精通&…...
宇树科技嵌入式面试题及参考答案(春晚机器人的公司)
目录 设计一个带看门狗(Watchdog)的嵌入式系统,描述故障恢复流程 在资源受限的 MCU 上实现 OTA 升级功能,描述关键设计点 如何实现 OTA(空中升级)功能?描述固件校验和回滚机制的设计要点 推挽输出与开漏输出的区别?举例说明其在 GPIO 控制中的应用 UART、SPI、I2C …...
Spring提供的SPEL表达式
SPEL 1. 概述 SpEL是Spring框架中用于表达式语言的一种方式。它类似于其他编程语言中的表达式语言,用于在运行时计算值或执行特定任务。 SpEL提供了一种简单且强大的方式来访问和操作对象的属性、调用对象的方法,以及实现运算、条件判断等操作。它可以…...
Pytorch xpu环境配置 Pytorch使用Intel集成显卡
1、硬件集显要为Intel ARC并安装正确驱动 2、安装Intel oneAPI Base Toolkit (https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/base-toolkit-download.html)安装后大约20G左右,注意安装路径 3、安装Visual Studio Build To…...
uploadlabs通关思路
目录 靶场准备 复现 pass-01 代码审计 执行逻辑 文件上传 方法一:直接修改或删除js脚本 方法二:修改文件后缀 pass-02 代码审计 文件上传 1. 思路 2. 实操 pass-03 代码审计 过程: 文件上传 pass-04 代码审计 文件上传 p…...
优选算法的智慧之光:滑动窗口专题(二)
专栏:算法的魔法世界 个人主页:手握风云 目录 一、例题讲解 1.1. 最大连续1的个数 III 1.2. 找到字符串中所有字母异位词 1.3. 串联所有单词的子串 1.4. 最小覆盖子串 一、例题讲解 1.1. 最大连续1的个数 III 题目要求是二进制数组&am…...
【蓝桥杯单片机】第十二届省赛
一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…...
剑指 Offer II 047. 二叉树剪枝
comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20047.%20%E4%BA%8C%E5%8F%89%E6%A0%91%E5%89%AA%E6%9E%9D/README.md 剑指 Offer II 047. 二叉树剪枝 题目描述 给定一个二叉树 根节点 root ,树的每…...
