当前位置: 首页 > news >正文

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

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

数字经济时代,数据库作为企业核心数据存储、处理、挖潜等方面的关键载体,重要性日益凸显。对于运营商而言,数据库具有行业用户数量多、访问数量多、业务复杂度高、数据安全性高、响应要求性高以及需要 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 场景等,以期打造更多运营商行业数据库自主创新样板点,成就行业标杆,助推运营商开启数字化转型发展新征程。

相关文章:

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

*本文首发自《中国电信业》 数字经济时代&#xff0c;数据库作为企业核心数据存储、处理、挖潜等方面的关键载体&#xff0c;重要性日益凸显。对于运营商而言&#xff0c;数据库具有行业用户数量多、访问数量多、业务复杂度高、数据安全性高、响应要求性高以及需要 7*24 小时服…...

6. 删除顺序表中的重复元素

p17 6. 删除顺序表中的重复元素 #include<stdio.h> #include<stdlib.h> #define MaxSize 100 typedef struct {int* data;int capacity;int length; }SeqList;int InitList(SeqList &L) {L.data (int*)malloc(MaxSize * sizeof(int));L.capacity MaxSize;L.l…...

Vue——axios的二次封装

文章目录 一、请求和传递参数1、get 请求2、post 请求3、axios 请求配置 二、axios 的二次封装1、配置拦截器2、发送请求 三、API 的解耦1、配置文件对应的请求2、获取请求的数据 四、总结 一、请求和传递参数 在 Vue 中&#xff0c;发送请求一般在 created 钩子中&#xff0c…...

JavaScript Web APIs -03 事件流、事件委托、其他事件(加载、滚动、尺寸)

Web APIs - 03 文章目录 Web APIs - 03事件流捕获和冒泡阻止冒泡 事件委托其他事件页面加载事件元素滚动事件页面尺寸事件 元素尺寸与位置 进一步学习 事件进阶&#xff0c;实现更多交互的网页特效&#xff0c;结合事件流的特征优化事件执行的效率 掌握阻止事件冒泡的方法理解事…...

QT DAY 2

window.cpp #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//this->resize(430,330);this->resize(QSize(800,600));// this…...

ELK安装、部署、调试(三)zookeeper安装,配置

1.准备 java安装&#xff0c;系统自带即可 2.下载zookeeper zookeeper.apache.org上可以下载 tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local mv apache-zookeeper-3.7.1-bin zookeeper 3.配置zookeeper mv zoo_sample.cfg zoo.cfg /usr/local/zookeeper/con…...

企业级智能PDF及文档处理SDK GdPicture.NET 14.2 Crack

企业级智能PDF及文档处理SDK GdPicture.NET 提供了一组非常先进的 API&#xff0c;这些 API 利用了人工智能、机器学习和模糊逻辑算法等尖端技术。经过超过 15 年的持续研究和对创新的专注&#xff0c;我们的 SDK 已成为市场上针对PDF、OCR、条形码、文档成像和各种格式最全面的…...

应用程序管理工具

应用程序管理是 DevOps 的重要组成部分。它可以定义为在所有阶段监控和管理软件应用程序的可用性、运行状况、性能和功能的过程&#xff0c;包括规划、设计、构建、测试、部署、维护和更新。这意味着应用程序从概念到停止都受到监控。 应用程序管理的重要性 管理应用程序可确…...

当数据集较小时,调节学习率的方法

当数据集较小时&#xff0c;调节学习率的方法 当数据集较小时&#xff0c;调节学习率的方法可以参考以下步骤&#xff1a; 当数据集较小时&#xff0c;调节学习率的方法可以参考以下步骤&#xff1a; 先尝试一个较小的学习率&#xff0c;如0.001&#xff0c;或者根据经验设置一…...

JS实现数组的扁平化(ES6实现)----例子+难点解析

要求&#xff1a; 取出嵌套数组(多维)中的所有元素放到一个新数组(一维)中如: [1, [3, [2, 4]]] > [1, 3, 2, 4] 基础知识&#xff1a; arr.concat() 语法&#xff1a;数组.concat(其他数组) 作用&#xff1a;将其他数组和数组拼接在一起 返回值&#xff1a;拼接好的新数…...

git 提交错误,回滚到某一个版本

git log 查看版本号 commit 后面跟的就是版本号git reset --hard 版本号 &#xff08;就可以回滚到你要去的版本&#xff09;git push -f &#xff08;因为本地回滚了&#xff0c;所以和远程会差几个版本。所以这时候只有强制推送&#xff0c;覆盖远程才可以&#xff09;...

数据结构:八种数据结构大全

数据结构 1.1 数据结构概述 数据结构是计算机存储、组织数据的方式&#xff1b;通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能&#xff1b;常用的数据结构有&#xff1a;数组&#xff08;Array&#xff…...

Java正则表达式系列--Pattern和Matcher的使用

原文网址&#xff1a;Java正则表达式系列--Pattern和Matcher的使用_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java的正则表达式中的两个重要类的用法&#xff1a;Pattern和Matcher。 在Java中&#xff0c;java.util.regex包定义了正则表达式使用到的相关类&#xff0c…...

40个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,html_css【附视频+源码】

当下前端开发可以说是一个比较火的职业&#xff0c;所以学习的人比较多&#xff0c;不管是培训还是自学都是希望通过前端可以找到一份好的工作&#xff0c;但是很多自学的朋友在自学过程中有些盲目&#xff0c;不仅大大降低了学习的效率&#xff0c;而且也会打击自己的学习热情…...

Erasure-Code(纠删码) 最佳实践

Erasure-Code(纠删码) 最佳实践 1. 纠删码原理 这个星球产生的数据越来越庞大&#xff0c;差不多2010年开始各大互联网公司大都上线了系统以应对数据膨胀带来的成本增长。Erasure-Code&#xff08;纠删码&#xff09;技术应用其中。典型如Google 新一代分布式存储系统colossu…...

USB 转 4 串口芯片 CH9104

产品概述&#xff1a; CH9104 是一款USB总线的转接芯片&#xff0c;支持最高6M波特率与硬件流控&#xff0c;支持USB配置功能&#xff0c;提供RS485方向控制与GPIO等信号引脚&#xff0c;可实现PC等平台扩展多串口或多个串口设备升级成USB口。CH9104实现 USB 转四个异步串口 U…...

java实现医院门诊排班与预约系统【代码】

文章目录 前言一、遇到的问题二、实现过程1.数据库设计2.实体类3.医生添加排班或修改排班方法4.患者预约方法5.患者修改预约6.患者取消预约 前言 该文章从实际需求出发&#xff0c;实现医生设置自身排班与患者预约功能。 一、遇到的问题 1、医生设置的排班表不能有时间上的冲…...

8.Redis-set

Set 常用命令saddsmemberssismemberscardspopsmovesrem集合间操作sinter 交集sinterstoresunion 并集sunionstoresdiff 差集sdiffstore 命令总结 内部编码应用场景使用 set来保存用户的“标签” set(集合)就是把一些有关联的数据放刀一起。 它与list的区别如下&#xff1a; 集合…...

电子厂生产管理系统解决方案

越来越多的企业开始意识到数字化转型的重要性。在这个过程中&#xff0c;生产型企业面临着许多挑战&#xff0c;例如如何提高生产效率、节省企业资源以及改善生产工艺流程和产品质量。有一种解决方案可以帮助企业应对这些挑战&#xff0c;那就是生产管理系统。 生产管理系统是一…...

ARM DIY(五)摄像头调试

前言 今天&#xff0c;就着摄像头的调试&#xff0c;从嵌入式工程师的角度&#xff0c;介绍如何从无到有&#xff0c;一步一步地调出一款设备。 摄像头型号&#xff1a;OV2640 开发步骤 分为 2 个阶段 5 个步骤 阶段一&#xff1a; 设备树、驱动、硬件 阶段二&#xff1a; 应…...

骁龙855深度解析:5G基带集成与移动芯片架构演进

1. 从爆料到现实&#xff1a;骁龙855的早期信息拼图2018年初&#xff0c;当搭载骁龙845的手机才刚刚在市场上崭露头角时&#xff0c;关于其继任者的传闻就已经开始流传。对于像我这样长期关注移动芯片发展的从业者来说&#xff0c;每一代旗舰SoC的迭代节奏都像是一场精心编排的…...

基于MATLAB的GPS捕获、跟踪与PVT计算实现

一、系统架构设计 GPS信号处理流程分为信号捕获、信号跟踪、导航电文解调和PVT解算四个核心模块。以下为MATLAB实现框架&#xff1a; % 主程序流程 [acquired_data, doppler_shift, code_phase] acquisition(signal, PRN_list); [tracked_data, cn0_est] tracking(acquired_d…...

STM32F030 HAL库驱动W25Q16实战:从数据手册到SPI读写代码(附避坑指南)

STM32F030 HAL库驱动W25Q16实战&#xff1a;从数据手册到SPI读写代码&#xff08;附避坑指南&#xff09; 1. 理解W25Q16存储芯片的核心特性 W25Q16作为一款16Mbit容量的SPI Flash存储器&#xff0c;在嵌入式系统中扮演着重要角色。这款芯片采用标准的SPI接口&#xff0c;支持单…...

vscode格式化插件

1、在vsocde里安装这个插件2、下载 clangllvm 适配 windows 链接地址&#xff1a;https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.83、添加环境变量 将下载的安装报解压到 C:\Users\你的用户名\AppData\Local\Programs 复制C:\Users\你的用户名\AppData\Loca…...

一款支持USB2.0的4端口集线器芯片

GM8220C是成都振芯科技推出的一款支持USB2.0的4端口集线器芯片。它充分满足USB2.0和充电协议&#xff08;BC1.1/1.2&#xff09;&#xff0c;具备多种工作模式和充电支持功能&#xff0c;适用于多种设备。1. 主要特征协议兼容&#xff1a;兼容USB2.0协议&#xff0c;并向下兼容…...

Sub-agent 协同失效的 3 类边界场景:Claude Code 8.1 机制原理解析

1. Sub-agent 协同失效不是 Bug,是机制在“按说明书执行” 大多数人第一次遇到 Sub-agent 返回空响应、反复循环调用主 Agent、或在多轮协作后突然“忘记”前序任务时,第一反应是:配置错了?网络不稳定?模型退化了?我试过把 claude-code 从 8.0.3 升到 8.1.1,又降回 8.0…...

ArcGIS Pro脚本工具实战:5分钟用arcpy给要素批量‘改名’(保姆级参数配置指南)

ArcGIS Pro脚本工具实战&#xff1a;5分钟用arcpy给要素批量‘改名’&#xff08;保姆级参数配置指南&#xff09; 当你在处理上百个GIS图层时&#xff0c;是否曾被重复的"右键-属性-修改别名"操作折磨到崩溃&#xff1f;上周我接手一个城市管网项目&#xff0c;需要…...

【量化】IPTQ-ViT: Post-Training Quantization of Non-linear Functions for Integer-only Vision Transformer

【PTQ】PTQViT/IPTQ-ViT (arXiv 2022) 问题: ViT 中的非线性函数&#xff08;GELU、Softmax&#xff09;在纯整数推理中存在计算障碍。 核心创新: 模块方法作用多项式近似 GELU用低阶多项式逼近 GELU将非线性运算转化为整数可执行的乘加Bit-shifting Softmax用位移操作近似 …...

深入Keil5编译器:解读#1295-D警告背后的C语言函数原型进化史

深入Keil5编译器&#xff1a;解读#1295-D警告背后的C语言函数原型进化史 当你在Keil5环境下打开一个遗留的单片机项目时&#xff0c;那个看似微不足道的#1295-D: Deprecated declaration警告可能正暗示着一段跨越四十年的编程语言进化史。这个关于函数声明的警告不是Keil5的任…...

助睿平台-零代码实现订单利润数据分流加工

一.实验背景 1.1 实验目的 本次实验旨在熟悉助睿零代码数据集成平台&#xff08;ETL平台&#xff09;的核心功能和操作方法&#xff0c;具体包括&#xff1a; 掌握新建转换、添加组件、执行转换等基本操作流程 熟悉表输入、记录集连接、字段选择、过滤记录、Excel输出等常用…...