本次研讨核心目标是围绕崖山 DB、达梦 DB、GBASE三款国产数据库,以及数据库内核开发吕工程师的分享,深入了解共享集群 RAC 的开发技术。但实际效果未达预期,参会者多围绕 “共享集群与分布式应用场景” 泛泛而谈,缺乏深度技术拆解。

参会观众以 ORACLE ACE 为主,包括垃圾首席、狗屁总监等资深DB媒体角色,但其观点普遍倾向 “共享集群优势显著、分布式存在缺陷”,存在明显认知局限。需明确的是:RAC 已属于日落架构,其并发能力上限固定;而分布式架构才是数据库发展的核心趋势(海鲨架构师观点)。

需纠正一个常见误区:分布式架构的选择并非依赖数据量(如 “1TB 之内用 RAC” 的认知错误),且当前分布式数据库虽存在短板(如两阶段事务提交导致的事务延迟),但仍具备不可替代的未来价值。

一、数据库设计核心要求

数据库设计需满足以下 9 大目标,其中关键要求的具体定义如下:

  1. 零丢失

  2. 高稳定:指单机环境下,数据库软件可长时间运行,无自发崩溃现象

  3. 高可用

  4. 高并发:以 TPCC 指标为核心(每秒事务数、QPS、并发线程、并发连接用户),重点衡量数据库支持的用户访问量(即使前后端优化,最终落到 DB 端的 SQL 量不会减少)

  5. 高性能:区分查询性能与 UPDATE 性能,需注意 “性能” 与 “并发” 不可混为一谈

  6. 高便利:指数据库易用性,包括配套工具丰富度、操作便捷性

  7. 高观测:支持多维度跟踪手段,可清晰监控数据库运行状态、了解运行机制

  8. 高安全

  9. 高节能:该特性在大规模部署场景(如数据中心上万台 DB)中更明显,例如某国产 DB 通过无锁化编程,在无负载时 CPU 消耗可稳定维持在 15%

二、广义与狭义分布式数据库的定义

1. 广义分布式数据库

在外行人(含开发工程师、CTO、普通同事)认知中,只要数据库依赖多台物理 PC 服务器支撑,且单台 / 多台物理机 / 数据库故障会导致业务部分 / 全部受影响,即可认定为分布式数据库

典型场景包括:

  • 读写分离的主备 / 主从架构(属于分布式中的 “克隆模式”)

  • ORACLE RAC(存算分离的分布式:“算” 部分分布式部署,“存” 部分共享)

  • MYSQL MGR(多主模式为分布式,单主模式非分布式;“算” 部分分布式,“存” 部分为克隆模式,非分片模式)

2. 狭义分布式数据库

即 “分库分表”,核心特征是 **“算” 与 “存” 双维度拆分,且采用分片模式(非克隆模式)

其核心价值是提升并发能力 **:通过水平扩展 PC 服务器实现弹性扩容,无需像 RAC 那样依赖停机升级内存、CPU。

三、RAC 共享集群与分布式架构的核心差异

对比维度RAC 共享集群狭义分布式数据库
核心目标高可用(ORACLE 重点优化方向,最新版本支持事务无影响迁移)提升并发能力(通过水平扩展实现)
存储模式共享存储(IOPS 存在上限)分片存储(无共享存储瓶颈)
扩容方式需停机升级内存 / CPU(扩展能力有限)在线横向扩展 PC 服务器(弹性扩容)
并发能力上限明确(受共享存储 IOPS 限制)可随节点扩展无限提升

四、分布式与共享集群的选型建议

国企用户普遍因 “RAC 稳定性经长期验证” 而偏好该架构,但选型需结合并发量、活跃数据量、业务停机需求综合判断:

1. 优先选择 RAC 的场景

  • 对内业务:并发量可控,存在固定业务维修窗口

  • 数据量与用户增长有限: 新硬件支撑下,并发和数据量在RAC承接范围内、共享存储压力可覆盖当前IOPS需求,且未来用户量、业务 SQL 功能增长也有限

  • 核心优势:短期内稳定性有保障,适合对 “扩展能力” 需求低的场景

2. 建议选择分布式 DB 的场景

  • 互联网业务:并发量不可控,无业务停机维护窗口(需 7×24 小时在线)

  • 业务增长特性:用户量可能爆发式增长(如新业务快速起量),需支持在线横向扩展

  • 核心优势:突破 RAC 扩展瓶颈,可通过增加 PC 服务器实现无感知扩容

五、当前狭义分布式数据库的缺陷与优化思路

1. 现存缺陷

  1. 事务性能:相对 RAC 存在明显延迟

  2. 分片设计:分片不合理易导致事务需跨多数据节点执行

  3. 读写策略:未做针对性读写分离,查询操作会消耗多数据节点的 IO 与 CPU

  4. 数据完整性:无完整数据库备份,若所有数据节点故障,部分业务会受影响

2. 优化建议:保留完整数据库在线

核心方案:USER 表同时设计分片表与完整不分片表,完整数据库的价值体现在:

  1. 解决分片决策难题:无论采用何种分片算法,均存在 “部分 SQL 需跨节点更新” 的情况,完整数据库可承接这类跨节点事务

  2. 优化多节点读操作:需跨多数据节点联合执行的读操作,可直接在完整数据库中读取,降低节点资源消耗

  3. 事务与数据同步策略:

  • 多数据节点事务:先在完整库执行,再通过分片字段 BINLOG 复制到对应数据节点

  • 单数据节点更新事务:通过 BINLOG 反馈并应用到主库

最后狭义分布式数据库架构设计,每个数据节点可以使用RAC共享集群架构来满足高可用需求。当然较为经济的MYSQL MGR也可以!

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传输层协议介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、TCP协议介绍二、TCP报文格式三、TCP三次握手四、TCP四次挥手五、UDP协议介绍六、常见协议及其端口七、TCP与UDP的不同总结前言提示:这里可以添加本…

Vibe Coding 概念提出者 AndrejKarpathy 谈强化学习。

在预训练时代,关键在于互联网文本。你最需要的是一大批量、多样化且高质量的互联网文档,供模型从中学习。在监督微调(SFT)时代,核心则是对话数据。人们雇佣合同工人为问题撰写答案,类似于你在 Stack Overfl…

OSI模型和TCP/IP模型区别是什么

问题OSI模型和TCP/IP模型区别是什么我的回答OSI和TCP/IP这两个协议栈有几个主要区别:首先,层次结构不同。OSI是七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP是四层模型:数据链路层、网络层、传…

ros2与gazebo harmonic机械臂仿真项目Moveit2YoloObb的优化

文章目录 关于项目RVIZ控制Gazebo Harmonic仿真机械臂GraphExecuter创建流程并通过Yolo算法抓取螺栓 关于项目 本文介绍ros2与gazebo harmonic机械臂仿真项目Moveit2YoloObb优化的内容,具体的代码细节就不赘述了,主要还是演示效果,包括RVIZ控…

Linux 系统调优与CPU-IO-网络内核参数调优

1. Linux系统调优1.1 安装工具包在开始监控前,需要确保系统已安装以下工具包,它们是后续操作的基础:sysstat:包含 mpstat、iostat、sar 等核心统计工具iotop:专门监控磁盘 I/O 的进程级工具nethogs:按进程查…

laravel学习并连接mysql数据库,给本地vue项目提供接口

下载laravel laravel下载地址phpstudy_pro\WWW\laravel.env文件 DB_CONNECTIONmysql DB_HOST127.0.0.1 DB_PORT3306 DB_DATABASEclgl //你的数据库名称 DB_USERNAMEroot //你的账号 DB_PASSWORDroot //你的密码安装 Laravel CORS 包 composer require fruitcake/laravel-c…

Mybatis 与 Springboot 集成过程详解

Mybatis 与 Springboot 集成过程详解一. 核心概念与优势二.Mybatis 核心类简介1.MybatisAutoConfiguration2.MapperScans3.MapperScannerRegistrar4.MapperFactoryBean5.Configuration6.MapperRegistry7.MapperProxy 与 MapperProxyFactory7.1核心定位与职责7.22. ​​MapperPr…

prometheus alertmanager 对接飞书

alertmanager 直接配置 飞书 的 webhook ,发现并不满足飞书接口的 json 格式。报错如下levelerror ts2025-08-28T04:57:02.734Z callerdispatch.go:310 componentdispatcher msg"Notify for alerts failed" num_alerts23 err"prometheusalert-webhoo…

『专利好药用力心脑血管健康』——爱上古中医(28)(健康生活是coder抒写优质代码的前提条件——《黄帝内经》伴读学习纪要)

心脏血管三通康,古时丸药精益装。 笔记模板由python脚本于2025-08-26 18:25:03创建,本篇笔记适合喜欢日常保健养生知识的coder翻阅。 学习的细节是欢悦的历程 博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。 Pyth…

在 .NET 8.0 中实现 JWT 刷新令牌

介绍在 Web 开发领域,安全是重中之重。JSON Web Tokens (JWT) 已成为在各方之间安全传输信息的热门选择。然而,在 JWT 过期后,如何维护用户会话并避免频繁登录至关重要。这正是 JWT 刷新令牌应运而生的地方。在本文中,我们将指导您…

深入解析 git push 命令

1. 基础语法 git push 的基本语法如下: git push <远程仓库名> <本地分支名>:<远程分支名> [选项]<远程仓库名>: 通常是 origin(默认的远程仓库名称)。 <本地分支名>:<远程分支名>: 指定要推送的本地分支以及目标远程分支。如果省略远…

UI弹出动画

简介的UI弹出动画 使用方式很简单 挂载到需要弹出的目标 即可 using UnityEngine; using DG.Tweening; using Unity.VisualScripting;/// <summary>/// 简洁的UI动画脚本/// 直接挂载到UI组件上&#xff0c;调用Play()播放缩放弹出动画/// </summary>public class …

PostgreSQL诊断系列(6/6):配置项全景解析——打造你的专属优化清单

&#x1f517; 作为《PostgreSQL诊断系列》的收官之作&#xff0c;今天我们系统梳理 postgresql.conf 中的核心参数&#xff0c;将前5篇的“诊断”转化为“调优”&#xff0c;打造一套生产环境专属的配置模板。 你是否&#xff1a; 不知道哪些参数该调&#xff1f;害怕调错导致…

Flink Slot 不足导致任务Pending修复方案

当前有3个虚拟机节点&#xff0c;每个节点配置的slot节点数量是4&#xff0c;${FLINK_HOME}/conf/flink-conf.yaml 关于slot的配置如下&#xff1a; # The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline. taskmanager.numberOfTas…

亚马逊合规风控升级:详情页排查与多账号运营安全构建

2025年亚马逊掀起的大规模扫号行动&#xff0c;聚焦商品详情页合规性审查&#xff0c;标志着跨境电商合规监管进入严风控时代&#xff0c;此次行动以关键词规范与定价诚信为核心&#xff0c;大量卖家因内容违规遭遇账号停用&#xff0c;对于卖家而言&#xff0c;构建系统化的合…

FISCO-BCOS-Python 模板

基于Python-SDK的FISCO BCOS区块链HelloWorld模板&#xff0c;提供了简单的问候语设置和查询功能。本项目采用现代Python开发实践&#xff0c;包含完整的配置管理、测试框架和项目结构。 快速开始 仓库地址&#xff1a;git clone https://gitee.com/atanycosts/python-fisco-te…

移动端(微信等)使用 vConsole调试console

本文介绍了一种在移动端真机上进行调试的方法——使用VConsole。通过简单的安装步骤和代码配置&#xff0c;开发者可以在移动端直接查看console.log输出&#xff0c;极大提升了调试效率。 摘要生成于 C知道 &#xff0c;由 DeepSeek-R1 满血版支持&#xff0c; 前往体验 >作…

云计算资源分配问题

这里写目录标题一、云计算资源的基本类型二、资源分配的目标三、资源分配的方式四、资源分配的技术与工具五、挑战与优化方向六、实际应用场景举例总结云计算资源分配是指在云计算环境中&#xff0c;根据用户需求、应用程序性能要求以及系统整体效率&#xff0c;将计算、存储、…

深度学习之第二课PyTorch与CUDA的安装

目录 简介 一、PyTorch 与 CUDA 的核心作用 1.PyTorch 2.CUDA 二、CUDA的安装 1.查看 2.下载安装 3.检查是否安装成功 三、PyTorch的安装 1.GPU版本安装 2.CPU版本安装 简介 在深度学习的实践旅程中&#xff0c;搭建稳定且高效的开发环境是一切实验与项目的基础&…

Ubuntu22.04 安装和使用标注工具labelImg

文章目录一、LabelImg 的安装及配置1. 安装2. 配置二、使用1. 基础操作介绍2. 创建自定义标签2.1 修改 predefined_classes.txt2.2 直接软件界面新增3. 图像标注3.1 重命名排序3.2 标注3.2 voc2yolo 格式转换3.3 视频转图片Yolo系列 —— Ubuntu 安装和使用标注工具 labelImgYo…