江苏移动基于OceanBase稳步创新推进核心数据库分布式升级

news2024/11/18 6:03:56

*本文首发自《中国电信业》

数字经济时代,数据库作为企业核心数据存储、处理、挖潜等方面的关键载体,重要性日益凸显。对于运营商而言,数据库具有行业用户数量多、访问数量多、业务复杂度高、数据安全性高、响应要求性高以及需要 7*24 小时服务等特点,其运行情况直接影响客户体验和支撑能力。

近几年,随着我国自主研发的基础软硬件产品发展、进步,部分应用场景已经实现数据库的自主可控。江苏移动全力构建基于 5G+算力网络+智慧中台的“连接+算力+能力”新型信息服务体系,统筹推进 CHBN 全向发力、融合发展,在此阶段底层架构需要做较大的调整,特别是集中式数据库在高并发、高负载、海量数据存储的业务场景投资多、无法扩容的问题越来越突出,对于业务发展正逐步带来负面影响。

江苏移动生产系统经过多年的发展,业务模块繁多,逻辑复杂,对底层数据库的性能、稳定性要求几近苛刻,在 IT 基础架构上持续演进时,不仅要求生产业务不受影响,而且还要求在数字经济的发展,一流服务科技创新创建提供强劲动能。

在中移动信息技术有限公司的大力支持下,江苏移动充分研究了多种商用数据库,以加强数据安全、满足业务发展、降本增效为前提,慎重选择了 OceanBase 作为核心数据库。在项目实施过程中,OceanBase 结合江苏移动业务现状和未来发展目标,同江苏移动IT部专家、应用开发方等从分布式架构设计、应用兼容性适配、容灾高可用场景、数据库性能提升等方面开展专项工作,稳步推进项目落地,支撑运营商核心数据库的技术升级发展。

图片

基于企业在生产系统中使用数据库的经验,江苏移动认为,运营商的数据库必须确保数据安全,利用数据库自身的能力以保证数据不丢失,可根据需要分层访问、授权访问和数据加密。同时,数据库要具备优秀的高可用性,能够做到异地多活部署,保证生产系统稳定运行。

目前,江苏移动核心系统数据库架构规划按照无锡、南京两地三中心三副本进行部署,基于 Paxos 多副本架构,让整个系统没有任何单点故障,可以最大限度缩短业务停服时间,保证系统的持续可用,做到机房故障无影响,城市级故障业务不受损,可达到 RPO=0,RTO<30s ,即国际标准灾难恢复能力最高级别 6 级。

CRM 核心库采用 4-4-4 架构,采用自动负载均衡策略将主副本随机打散在 2 个 Primary Zone 中以承载业务读写负载,物理备库承载业务只读访问。经过长时间验证,该架构能够满足业务海量连接、高负载的业务需求,通过完全自主研发的数据库架构优势,将分布式数据库的技术能力转变成江苏移动的生产力,带动企业经济效益的增长。

核心库业务高峰期QPS近20万

图片

原生分布式数据库 OceanBase 语法兼容性强,对象兼容性高,既满足了江苏移动的业务逻辑需求,又极大降低了应用的改造工作量。

通过 OceanBase的OMA 评估工具,连接上源端数据库抓取对象结构、SQL 语句信息以评估对应 OceanBase 版本的整体兼容性情况,并给出分析报告和不兼容点改造建议 ;OMA SQLReplay 模块可通过捕获生产库业务高峰或者长时间的 SQL 负载文件后在 OceanBase 集群进行回放,可直观掌握原 SQL 在 OceanBase 集群的响应时间和整体负载情况,在前期就可针对性进行 SQL 语句级别优化或集群规模调整,保障割接后系统稳定运行。

OceanBase 的配套迁移工具 OMS 提供的同构或异构数据源与 OceanBase 数据库之间进行数据交互的服务,具备在线结构迁移、全量迁移和增量数据同步,无缝迁移源端数据库中的存量业务数据和增量数据至 OceanBase 数据库 租户中;在全量数据迁移完成,增量数据迁移至目标端并与源端基本追平后,OMS 会自动发起针对源库数据表和 OceanBase 目标表的全量数据校验任务,保证迁移任务可以准确完成。整个迁移任务和校验过程完全依托 OMS 自动化能力,极大降低人力迁移运维成本。

图片

OceanBase 数据库支持超大规模集群(节点超过 1500 台,最大单集群数据量超过 3 PB,单表数量达到万亿行级别)动态扩展,在 TPC-C 场景中,系统扩展比可以达到 1:0.9,使用户投资的硬件成本被最大化利用。

在江苏移动的整体架构设计中,划分了若干个中心生产集群,每个生产集群上按照不同业务系统对应 OceanBase 的不同租户,租户间实现资源隔离,让每个租户的实例不感知其他实例的存在,并通过权限控制确保不同租户数据的安全,配合 OceanBase 数据库强大的在线扩缩容特性,能够提供安全、灵活的 DBaaS 服务。

不仅如此,与传统关系型数据库相比,OceanBase 可以在不影响在线业务的前提下,明显降低存储成本;OceanBase 采用 LSM-Tree 存储引擎,存储模块采用全新设计的行列混合存储结构,同时将高效的数据编码技术与数据压缩算法相结合,实现存储空间大幅减少;压缩比率超过 85%。 

图片

随着移动互联网的高度发展以及 5G 时代的到来,数据量爆发式增长,我们正在进入一个大数据时代,对于数据的处理,也就是对于数据库产业而言,是一个巨大的机会。

长期以来,运营商对系统服务稳定性要求高,对数据库产品要求严苛。以自研数据库使用为契机,OceanBase 完全自主研发,能够做到自主可控,能够满足核心数据库的安全及稳定运行要求。从项目实际运行效果来看,OceanBase 针对中国移动自研国产操作系统 BCLinux、国产服务器、数据库一体机进行全面适配,实现“数据库+操作系统+硬件服务器“的全栈自主可控,为核心数据库未来长期的安全稳定运行提供有力保障。

江苏移动一直致力于推动技术自主创新,在项目中实施过程中,基于业务现状和未来规划,从分布式架构、应用兼容性适配、容灾高可用场景、全栈化适配、数据库性能提升等多个方面开展专项工作,目前已经取得较好效果,部分核心库已经上线并稳定运行,在运营商甚至整个政企行业的核心 IT 数据库领域都有较好的推广价值,也凸显了江苏移动在数智化转型上的前瞻性与领先性。

近期,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)公布了第六届大数据“星河”案例获奖名单, 特别值得一提的是,江苏移动联合 OceanBase 打造的 “CRM 系统核心数据库替代项目”脱颖而出获得了数据库方向的“标杆案例奖”。

据悉,2022 年第六届大数据“星河”案例征集活动意在通过总结和推广大数据产业发展的优秀成果,推动大数据在社会生产生活中的应用, 促进大数据技术产品及相关产业发展。自 2022 年 9 月启动以来,征集活动受到了业界广泛关注,共收到包括行业数据应用、数据安全、隐私计算、数据资产管理、数据库五大方向的申报案例 595 份。此次江苏移动获得数据库标杆案例奖,是江苏移动与 OceanBase 在推动数据库自主可控联合创新实践过程中的又一个成功范例,标志着双方在数据库关键领域的合作迈出了更坚实的一步。

未来,随着技术发展以及市场成熟,分布式数据库行业将迎来爆发式增长,双方将将聚力创新,继续合作探索运营商行业核心系统数据库自主创新解决方案,如两地三中心部署、HTAP 场景等,以期打造更多运营商行业数据库自主创新样板点,成就行业标杆,助推运营商开启数字化转型发展新征程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/957323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【组合计数 or 树DP】2021 icpc 上海 G

Problem - G - Codeforces 题意&#xff1a; Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn1e610; const int mxv1e610; const int mod998244353;vector<int> G[mxn];int N,u,v; int ans1; int sz[mxn];void…

手把手教你写出第一个C语言程序

Hello, World! 1. 前言2. 准备知识2.1 环境2.2 文件的分类2.3 注释2.3.1 注释的作用2.3.2 注释的两种风格2.3.2.1 C语言的注释风格2.3.2.2 C的注释风格 2.3.3 VS中注释和取消注释的快捷键 3. 开始演示3.1 创建项目3.2 创建源文件3.3 写代码3.4 编译链接运行 4. 代码解释4.1 写主…

Apipost:API文档、调试、Mock与测试的一体化协作平台

随着数字化转型的加速&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为企业间沟通和数据交换的关键。而在API开发和管理过程中&#xff0c;API文档、调试、Mock和测试的协作显得尤为重要。Apipost正是这样一款一体化协作平台&#xff0c;旨在解决这些问题&#xf…

QT 使用信号与槽实现界面跳转

一、创建一个新的页面 1 > 在原有工程上新建一个页面 2 > 选择Qt - Qt 设计师界面类 - choose 3 > 选择Widget模板 - 下一步 4 > 输入自定义类名 - 下一步 会自动生成其同名的.h .cpp .ui文件 5 > 最终效果 Headers存放.h文件 Soueces存放.cpp文件 Forms存放.u…

unity 之参数类型之引用类型

文章目录 引用类型引用类型与值类型的差异 引用类型 在Unity中&#xff0c;引用类型是指那些在内存中存储对象引用的数据类型。以下是在Unity中常见的引用类型的介绍&#xff1a; 节点&#xff08;GameObject&#xff09;&#xff1a; 在Unity中&#xff0c;游戏对象&#xff…

学习 使用pandas库 DataFrame 使用

1 、 数据排序 sort_values()函数 by:要排序的名称或名称列表&#xff0c; sorted_df df.sort_values(byAge,ascendingFalse) 由大到小排序&#xff1b; sorted_df df.sort_values(byAge) 由小到大排序&#xff1b; # 创建一个示例数据帧 data {Name: [Tom, Nick, John…

9.嵌套路由

1.添加主路由main <template><div><!-- 页面布局 --><el-container><!-- 侧边栏 --><el-aside width"200px">Aside</el-aside><!-- 页面布局 右边 包括header 和main --><el-container><el-header>Head…

08:STM32----DMA数据转运

目录 1:简历 2:存储器映像 3:DMA基本结构 4: DMA转运的条件 5:DMA请求 A:DMA数据转运 1:连接图 2:数据转运DMA 3:函数介绍 4:步骤 5:代码 B:DMAAD多通道 1:连接图 2:结构图 3:函数介绍 4:代码 1:简历 DMA&#xff08;Direct Memory Access&#xff09;直接存储…

讲讲几道关于 TCP/UDP 通信的面试题

TCP &#xff08;1&#xff09;TCP 的 accept 发生在三次握手的哪个阶段&#xff1f; 如下图connect和accept的关系&#xff1a; accept过程发生在三次握手之后&#xff0c;三次握手完成后&#xff0c;客户端和服务器就建立了tcp连接并可以进行数据交互了。这时可以调用accep…

每日一题(链表的中间节点)

每日一题&#xff08;链表的中间节点&#xff09; 876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 如下图&#xff1a;可以定义两个结构体指针均从链表的头节点开始向后遍历&#xff0c;fast指针一次走两步&#xff0c;slow指针一次走一步&a…

RC电路(二):耦合

耦合仿真电路及波形 数值与输入方波宽度 之间满足&#xff1a;&#xff0c;将变成一个 耦合电路&#xff0c;输出波形可以跟随输入波形&#xff0c;电路如下图所示。 上图红框部分放大后如下图所示&#xff1a; 在 时&#xff0c; 由 &#xff0c;因电容电压不能突变(来不及…

第一方支付、第二方支付、第三方支付、第三方支付是什么?

我相信关于支付行业大家多多少少都有一些自己的理解&#xff0c;但是具体的一些名词如标题中的这些&#xff0c;第一方、第二方、第三方支付&#xff0c;到底指的是什么&#xff1f; 第一方支付 也就是现金支付&#xff0c;其本质的意义就是指货币支付&#xff0c;从最早出现货…

IDEA配置使用Gradle

IDEA如何配置 Gradle&#xff08;详细版&#xff09; 使用国内镜像仓库加速下载依赖包

docker-compose 部署nacos 整合 postgresql 为DB

标题docker-compose 部署nacos 整合 postgresql 为DB 前提&#xff1a; 已经安装好postgresql数据库 先创建好一个数据库 nacos&#xff0c;执行以下sql: /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the "…

为什么人与人之间的差距这么大?

前言 首先要明确的是&#xff0c;与身边的人相比&#xff0c;每个人的生活情况和经历都是不同的&#xff0c;有差距是非常正常的。因此&#xff0c;不需要过度关注自己与他人之间的差距。个人感受 在生活中&#xff0c;工作中&#xff0c;学习中&#xff0c;不免遇上一些各方…

2023年全国职业院校技能大赛信息安全管理与评估网络安全渗透任务书

全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 任务书 模块三 网络安全渗透、理论技能与职业素养 比赛时间及注意事项 本阶段比赛时长为180分钟&#xff0c;时间为9:00-12:00。 【注意事项】 &#xff08;1&#xff09;通过找到正确的flag值来获取得分&#xff0c;f…

【防火墙】防火墙NAT Server的配置

Web举例&#xff1a;公网用户通过NAT Server访问内部服务器 介绍公网用户通过NAT Server访问内部服务器的配置举例。 组网需求 某公司在网络边界处部署了FW作为安全网关。为了使私网Web服务器和FTP服务器能够对外提供服务&#xff0c;需要在FW上配置NAT Server功能。除了公网…

java基于微信小程序的讲座预约系统的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 技术栈第三章 系统分析3.1初步需求分析 3.2 系统用例分析3.2.1 公告管理用例分析3.2.2 系…

Opencv手工选择图片区域去水印

QT 插件化图像算法研究平台的功能在持续完善&#xff0c;补充了一个人工选择图片区域的功能。 其中&#xff0c;图片选择功能主要代码如下&#xff1a; QRect GLImageWidget::getSeleted() {QRect ajust(0,0,0,0);if(image.isNull() || !hasSelection)return ajust;double w1…

数据转换器与其它工具格式转换功能的对比

网上看到有几篇介绍将KML数据转换为GIS其它格式或者将GIS其它格式转换为KML数据方法的文章&#xff0c;感觉好多的步骤,技巧和注意呀!头晕!其中还不包括工具的安装&#xff0c;破解!做个数据转换也真的是烧脑啊。下面也我介绍一下我们的工具GIS数据转换器-矢量的转换方法。我只…