OceanBase數據庫-學習筆記1-概論

多租戶概念

集群和分布式

  • 隨著互聯網、物聯網和大數據技術的發展,數據量呈指數級增長,單機數據庫難以存儲和處理如此龐大的數據。
  • 現代應用通常需要支持大量用戶同時訪問,單機數據庫在高并發場景下容易成為性能瓶頸。
  • 單點故障是單機數據庫的一個主要問題,一旦發生故障,整個系統可能無法使用。
  • 許多應用需要實時處理和分析數據,單機數據庫在實時性方面存在局限。

集群(Cluster)和分布式系統(Distributed System)應運而生,它們都是為了解決大規模計算和數據處理需求而設計的系統架構。

定義

  • 集群(Cluster):
    • 集群是將多臺計算機(節點)通過網絡連接在一起,作為一個整體系統來工作。
    • 集群中的節點通常位于同一個物理位置(如數據中心),并且共享相同的目標(如提高性能、可用性或容錯性)。
    • 集群通常用于高性能計算(HPC)、負載均衡、高可用性等場景。
  • 分布式系統(Distributed System):
    • 分布式系統是由多個獨立的計算機(節點)通過網絡連接在一起,協同完成一個共同的任務。
    • 分布式系統中的節點可以分布在不同的地理位置,彼此之間通過消息傳遞進行通信。
    • 分布式系統通常用于大規模數據處理、分布式存儲、云計算等場景。

區別

  • 集群更適合需要高性能、低延遲和高可用性的場景,通常用于單一任務或服務的集中式管理。
  • 分布式系統更適合需要大規模擴展、跨地域協作和復雜任務處理的場景,通常用于大規模數據處理和存儲。

兩者在實際應用中常常結合使用,例如在分布式系統中使用集群來提高局部性能,或者在集群中使用分布式技術來實現更大規模的擴展。

運維和管理

集群和分布式系統的管理通常比單機系統復雜得多,因為它們涉及多個節點、網絡通信、數據一致性、故障處理等多方面的挑戰。

集群管理的復雜性
  • 節點管理:集群中的每個節點需要單獨配置、監控和維護。節點之間的硬件和軟件環境需要保持一致。
  • 負載均衡:需要動態分配任務,確保每個節點的負載均衡。負載均衡策略需要根據業務需求調整。
  • 高可用性:需要設計冗余和故障轉移機制,確保單點故障不會影響整個集群。需要監控節點狀態,及時處理故障。
  • 資源調度:需要合理分配計算、存儲和網絡資源,避免資源浪費或瓶頸。
  • 一致性維護:在集群中,數據的一致性需要通過分布式鎖、選舉算法等機制來保證。
分布式系統管理的復雜性
  • 網絡通信:分布式系統的節點通常分布在不同的地理位置,網絡延遲和分區問題會增加復雜性。需要處理消息丟失、重復、亂序等問題。
  • 數據一致性:分布式系統中,數據的一致性(如 CAP 理論中的一致性、可用性和分區容錯性)難以同時滿足。需要選擇合適的分布式一致性算法(如 Paxos、Raft)。
  • 故障處理:分布式系統中的節點故障、網絡分區等問題更加頻繁和復雜。需要設計容錯機制,如數據復制、故障檢測和恢復。
  • 擴展性:分布式系統需要支持動態擴展,添加或刪除節點時不能影響系統運行。需要設計無狀態服務或數據分片機制。
  • 監控和調試:分布式系統的日志和監控數據分散在多個節點,難以集中分析和調試。需要專門的工具(如 Prometheus、Grafana、ELK Stack)來監控系統狀態。
  • 安全性:分布式系統的節點之間需要安全通信,防止數據泄露或篡改。需要配置 SSL/TLS、防火墻、訪問控制等安全措施。

分布式數據庫

分布式數據庫的出現是為了應對大數據時代的數據存儲、處理、高并發、高可用性、地理分布、靈活性、成本效益、復雜查詢、數據安全、多樣化數據模型和實時數據處理等多方面的需求和挑戰。OceanBase數據庫就是一款分布式數據庫(整體分布式,局部集群相結合)。

為了簡化大規模部署多個業務數據庫的管理并降低資源成本,OceanBase 數據庫提供了獨特的多租戶特性。多租戶架構適用于資源整合(Resource Consolidation)、云服務等場景,同時也降低了運維復雜度。

多租戶概念

可以這樣理解:OceanBase 集群 是一個“超級數據庫實例”,包含底層的物理資源。租戶是一個邏輯概念,是在 OceanBase 中的邏輯實體,可以理解為一個“虛擬的數據庫實例”。
多租戶,就是在一個集群中可以有多個租戶存在,它們共享同一套物理資源(如 CPU、內存、存儲等),但是在邏輯上是一個獨立的數據庫實例,擁有自己的數據和配置。

可以類比租房子的場景,一棟樓有多個房間,每個房間都可以被租戶租取使用,一個租戶可以租多個房間。那么從邏輯層面上,多個租戶都共享這一棟樓的資源,而每個租戶只能使用自己租的房間,相互隔離。這樣就不用每個租戶都建一套房,那么網格員在管理的時候,就可以只對這棟樓的屬性進行管理,降低了管理的復雜度。

傳統數據庫架構
OceanBase集群架構

為啥要引入多租戶

問題背景

  • 在傳統架構中,每個業務系統通常需要獨立的數據庫實例,導致管理復雜度高,運維成本大。
  • 傳統架構中,每個業務系統需要獨立的硬件資源,導致資源利用率低,成本高。

方案

  • 通過多租戶架構,OceanBase 可以在一個數據庫集群中支持多個業務系統(每個業務系統作為一個租戶)。
  • 管理員只需管理一個 OceanBase 集群,而不是多個獨立的數據庫實例,大大簡化了部署和運維工作。
  • 提供統一的管理工具,支持對多個租戶進行集中監控、配置和資源調整。
  • 多租戶架構允許多個業務系統共享同一套物理資源(如 CPU、內存、存儲等),提高了資源利用率。[1]
  • 通過動態資源分配,可以根據業務需求靈活調整資源使用,避免資源浪費。
  • 減少了硬件投資和運維成本,特別適合大規模部署場景。

[1]: 一個 OceanBase 集群 可以看作一個“超級數據庫實例”,它包含了底層的物理資源(如 CPU、內存、存儲等)。在這個集群中,可以創建多個 租戶(Tenant),每個租戶在邏輯上是一個獨立的數據庫實例。每個租戶有自己的數據、用戶、權限和配置,就像傳統數據庫實例一樣。
但與傳統模式不同的是,這些租戶 共享同一個 OceanBase 集群的物理資源,而不是每個租戶獨占一套硬件資源。

部署模式

OceanBase 數據庫支持無共享(Shared-Nothing,SN)模式和共享存儲(Shared-Storage,SS)模式兩種部署模式。

  • SN模式,常用的部署模式,各個節點之間完全對等,每個節點都有自己的 SQL 引擎、存儲引擎、事務引擎。
  • SS模式,一般是在云上提供云原生數據庫服務,降低數據庫使用成本,提升性能和易用性。

OceanBase 數據庫提供企業版和社區版兩種形態。

  • OceanBase 數據庫企業版:OceanBase 企業版是一款完全自研的企業級原生分布式數據庫,在普通硬件上實現金融級高可用,首創“三地五中心”城市級故障自動無損容災新標準,刷新 TPC-C 標準測試,單集群規模超過 1500 節點,具有云原生、強一致性、高度兼容 Oracle/MySQL 等特性。
  • OceanBase 數據庫社區版兼容 MySQL 的單機分布式一體化數據庫,具有原生分布式架構,支持金融級高可用、透明水平擴展、分布式事務、多租戶和語法兼容等企業級特性。OceanBase 社區版數據庫內核開源,與 MySQL 兼容,對接虛擬化和大數據技術及產品,支持多種圖形化的開發工具、運維監控工具和數據遷移工具;同時社區版提供開放的接口和豐富的生態能力,支持企業或個人更好的實現定制化業務需求。

以上就是本次的分享,感謝閱讀。

上一章:《OceanBase數據庫-學習筆記1-概論》
下一章:《OceanBase數據庫-學習筆記2-C#/C++程序如何訪問》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79231.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79231.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79231.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡——鍵入網址到網頁顯示,期間發生了什么?

瀏覽器做的第一步工作是解析 URL,分清協議是http還是https,主機名,路徑名,然后生成http消息,之后委托操作系統將消息發送給 Web 服務器。在發送之前,還需要先去查詢dns,首先是查詢緩存瀏覽器緩存…

Qwen3本地化部署,準備工作:SGLang

文章目錄 SGLang安裝deepseek運行Qwen3-30B-A3B官網:https://github.com/sgl-project/sglang SGLang SGLang 是一個面向大語言模型和視覺語言模型的高效服務框架。它通過協同設計后端運行時和前端編程語言,使模型交互更快速且具備更高可控性。核心特性包括: 1. 快速后端運…

全面接入!Qwen3現已上線千帆

百度智能云千帆正式上線通義千問團隊開源的最新一代Qwen3系列模型,包括旗艦級MoE模型Qwen3-235B-A22B、輕量級MoE模型Qwen3-30B-A3B。千帆大模型平臺開源模型進一步擴充,以多維開放的模型服務、全棧模型開發、應用開發工具鏈、多模態數據治理及安全的能力…

藍橋杯Python(B)省賽回憶

Q:為什么我要寫這篇博客? A:在藍橋杯軟件類競賽(Python B組)的備賽過程中我在網上搜索關于藍橋杯的資料,感謝你們提供的參賽經歷,對我的備賽起到了整體調整的幫助,讓我知道如何以更…

數據轉儲(go)

? 隨著時間推移,數據庫中的數據量不斷累積,可能導致查詢性能下降、存儲壓力增加等問題。數據轉儲作為一種有效的數據管理策略,能夠將歷史數據從生產數據庫中轉移到其他存儲介質,從而減輕數據庫負擔,提高系統性能&…

Git Stash 詳解

Git Stash 詳解 在使用 Git 進行版本控制時,經常會遇到需要臨時保存當前工作狀態的情況。git stash 命令就是為此設計的,它允許你將未提交的更改暫存起來,在處理其他任務或分支后,再恢復這些更改。 目錄 基本概念常用命令示例和…

Windows下Dify安裝及使用

Dify安裝及使用 Dify 是開源的 LLM 應用開發平臺。提供從 Agent 構建到 AI workflow 編排、RAG 檢索、模型管理等能力,輕松構建和運營生成式 AI 原生應用。比 LangChain 更易用。 前置條件 windows下安裝了docker環境-Windows11安裝Docker-CSDN博客 下載 Git下載…

Clang-Tidy協助C++編譯期檢查

文章目錄 在Visual Studio中啟用clang-tidyClang-tidy 常用的檢查項readability-inconsistent-declaration-parameter-namemisc-static-assert 例子 C/C語言是一門編譯型語言,比起python,javascript 這些,有很多BUG可以在編譯期被排除掉,當然…

智能工廠規劃學習——深入解讀數字化工廠規劃與建設方案

項目總體思路聚焦于通過智能制造和數字化工廠建設,來優化企業戰略并提升信息化水平。首先,企業需學習先進國家已經驗證的先進經驗,并緊跟其正在變革的方向,以確保自身發展的前瞻性和競爭力。 在企業戰略層面,企業正從以產品為中心的業務模式,逐步轉變為以服務中心…

Go RPC 服務方法簽名的要求

在 Go 中,RPC 方法的簽名有嚴格的要求,主要是為了保證方法的調用能夠通過網絡正確地傳輸和解析。具體要求如下: 1. 方法必須是導出的 RPC 服務的方法必須是導出的(即首字母大寫)。這是因為 Go 的反射機制要求服務方法…

上位機 日志根據類型顯示成不同顏色

前言 在上位機軟件開發中日志是一個很重要的信息。一方面顯示系統的運行情況,另一方面主要用于排查軟件BUG和設備問題的重要參考。為了方面識別日志類型最好的方式是使用不同的顏色進行區分。這樣就一目了然了。 效果 實現代碼 1.根據 ListBox 控件 進行擴展了一個自定義控件…

CMake解析參數用法示例

cmake_parse_arguments 是 CMake 中用于解析函數或宏參數的工具,特別適合處理帶有選項(OPTIONS)、單值參數(SINGLE_ARGS)和多值參數(MULTI_ARGS)的復雜參數列表。以下是用法說明和一個示例&…

自定義JackSon配置

避免前端&#xff08;JavaScript&#xff09;處理大數&#xff08;如 Long、BigInteger&#xff09;時發生精度丟失問題&#xff0c;所以引入了自定義 Jackson 配置。 先看代碼&#xff1a; /** 根據id修改員工信息*/PutMappingpublic R<String> update(HttpServletRequ…

Qt入門——什么是Qt?

Qt背景介紹 什么是Qt? Qt 是?個 跨平臺的 C 圖形用戶界面應用程序框架 。它為應用程序開發者提供了建立藝術級圖形界面所需的所有功能。它是 完全面向對象 的&#xff0c;很容易擴展。Qt 為開發者提供了 ?種基于組件的開發模式 &#xff0c;開發者可以通過簡單的拖拽和組合…

Linux CentOS 安裝Python 3.8.0

在 CentOS 上升級 Python 3.6.8 到 3.8.0&#xff0c;可以按照以下步驟操作&#xff1a; 1. 安裝依賴 sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel wget 如果遇到報錯“File "/bin…

Python爬蟲(11)Python數據存儲實戰:深入解析NoSQL數據庫的核心應用與實戰

目錄 引言一、背景&#xff1a;為什么選擇NoSQL存儲爬蟲數據&#xff1f;1.1 爬蟲數據的核心挑戰1.2 NoSQL數據庫的核心優勢 二、NoSQL數據庫在爬蟲中的核心應用2.1 MongoDB&#xff1a;文檔型數據庫的王者2.2 Redis&#xff1a;內存數據庫的極致性能 三、NoSQL選型與性能優化策…

PCB設計工藝規范(一)概述

PCB設計工藝規范&#xff08;一&#xff09; 1.概述2.關鍵詞及引用標準3.PCB板材要求3.1 確定PCB使用板材以及TG值3.2 確定 PCB 的表面處理鍍層 4.熱設計要求5.器件庫選項要求 資料來自網絡&#xff0c;僅供學習使用。 1.概述 規范產品的 PCB 工藝設計&#xff0c;規定 PCB 工…

proxychains4系統代理for linux(加速國內github下載速度,pip安裝)

1.proxychains4代理安裝&#xff1a; sudo apt-get install proxychains42.找到配置文件/etc/proxychains4.conf在[ProxyList]后面添加以下內容&#xff1a; socks5 127.0.0.1 10808 配置如下&#xff1a; 3.使用proxychains4(git clone)&#xff1a; proxychains4 git c…

Seata客戶端@GlobalTransactional核心源碼解析

文章目錄 前言一、GlobalTransactional1.1、wrapIfNecessary1.2、handleGlobalTransaction1.3、invoke 二、總結 前言 Seata是阿里開源的分布式事務解決方案。在Spring傳統的事務中&#xff0c;開啟事務&#xff0c;執行事務&#xff0c;回滾/提交事務&#xff0c;統一由Spring…

pytorch搭建并訓練神經網絡

#從小白開始學習人工智能# #學習筆記# 工具&#xff1a;pytorch 一、基礎概念 1.神經網絡是什么&#xff1f; 神經網絡是人類受到生物神經細胞結構啟發而研究出的算法體系。又稱為人工神經網絡&#xff08;Artificial neural network&#xff09; 最簡版神經網絡結構圖&a…