關于國產 RAC 和分布式研討

本次研討核心目標是圍繞崖山 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…