OceanBase分布式資料庫使用教程

2021-10-02 02:29:27 字數 3268 閱讀 7541

oceanbase是乙個支援海量資料的高效能分布式資料庫系統,實現了數千億條記錄、數百tb資料上的跨行跨表事務,由**核心系統研發、運維、dba、廣告、應用研發等部門共同完成。在設計和實現oceanbase的時候暫時摒棄了不緊急的dbms的功能,例如臨時表,檢視(view),研發團隊把有限的資源集中到關鍵點上,當前 oceanbase主要解決資料更新一致性、高效能的跨表讀事務、範圍查詢、join、資料全量及增量dump、批量資料匯入。

目前oceanbase已經應用於**收藏夾,用於儲存**使用者收藏條目和具體的商品、店鋪資訊,每天支援4~5千萬的更新操作。等待上線的應用還包括ctu、sns等,每天更新超過20億,更新資料量超過2.5tb,並會逐步在**內部推廣。

官網位址

相容mysql oracle

單錶最多記錄10000億條

6100萬次/秒處理峰值

單集群規模超200臺,資料量超5pb

高擴充套件性

雖然傳統關係型資料庫(如 oracle 或 mysql)的功能已經很完善,但是資料庫可擴充套件性比較差,隨著資料量增大,需要進行分庫分表儲存,在查詢時需要將相應的 sql 解析到指定的資料庫中,資料庫管理員需要花費大量時間來做資料庫擴容,且對維護人員的技術要求比較高,要掌握分布式處理中資料的讀寫分離、垂直拆分和水平拆分等技術。

而 oceanbase 使用分布式技術和無共享架構,資料自動分散到多台資料庫主機上,採用廉價的 pc 伺服器作為資料庫主機,可以自由地對整個分布式資料庫系統進行擴充套件,既降低了成本,同時也保證了無限的水平擴充套件。

oceanbase 也被稱為雲資料庫,具有雲儲存的隨意擴充套件的特性。

高可靠性

oceanbase 資料庫系統使用的廉價的 pc 伺服器,這些伺服器是不可靠的,很容易出現故障。但是,oceanbase 又必須保證任何時刻出現的硬體故障不影響業務。

因此,oceanbase 引入 paxos 協議,保證分布式事務的一致性,即資料庫系統中資料以備份的方式儲存於多台機器中,當其中一台出現故障時,其他備份仍可以使用,並根據系統日誌來恢復故障前的資料。

資料準確性

oceanbase 是新型的關係型資料庫,支援事務的 acid 特性。這在電子商務、金融等領域是非常重要的,這些領域對資料的準確性要求非常高,如電子商務中的支付資料,這些資料要保持一致性,不能有任何資料的丟失。

oceanbase 在設計時,讀事務基本是分布式併發執行的,而寫事務則是集中式序列執行的,且任何乙個寫事務在最終提交前對其他讀事務都是不可見的,因此 oceanbbase 是具有強一致性的,能保證資料的正確性。

9) 高效能

資料庫的總量是很大的,每天增、刪、改的資料只是其中的小部分,這部分資料為增量資料。

oceanbase 將資料分成基準資料和增量資料,基準資料是保持不變的歷史資料,用磁碟進行儲存,可保證資料的穩定性;而增量資料是最近一段時間的修改資料,儲存在記憶體中,這種針對增、刪、 改記錄的儲存方式極大地提高了系統寫事務的效能,並且增量資料在凍結後會轉存到 ssd 上,仍然會提供較高效能的讀服務。

oceanbase 會在系統的低負載時段對資料進行合併操作,避免對業務產生不良影響。

oceanbase架構的一些基本概念

主鍵row key,也稱為primary key,類似於dbms的主鍵,與dbms不同的是,oceanbase的主鍵總是二進位制字串(binary string),但可以有某種結構。oceanbase以主鍵為順序存放**資料

sstable

一種資料儲存格式,oceanbase用來儲存乙個或幾個表的一段按主鍵連續的資料

tablet

乙個表按主鍵劃分的乙個(前開後閉的)範圍,通常包含乙個或幾個sstable,乙個tablet的資料量通常在256mb左右

基準資料和動態資料

oceanbase以增量方式記錄一段時間內的**資料的增刪改,從而保持著**主體資料在一段時間內相對穩定,其中增刪改的資料稱為動態資料(通常在記憶體,也稱為記憶體表),而一段時間內相對穩定的主體資料稱為基準資料,基準資料和轉儲後(儲存到ssd固態盤或磁碟)的動態資料以sstable格式儲存

chunkserver

儲存基準資料的伺服器,通常是多台,為了避免軟體硬體故障導致的服務中斷,同乙份基準資料通常儲存了3份並儲存在不同chunkserver上

updateserver

儲存動態資料的伺服器,一般是單台伺服器。為了避免軟體硬體故障導致的服務中斷,updateserver記錄commit log並通常使用雙機熱備

mergeserver

進行靜態動態資料合併的伺服器,常常與chunkserver共用一台物理伺服器。mergeserver使得使用者能夠訪問到完整的最新的資料

rootserver

配置伺服器,一般是單台伺服器。為了避免軟體硬體故障導致的服務中斷,rootserver記錄commit log並通常採用雙機熱備。由於rootserver負載一般都很輕,所以它常常與updateserver共用物理機器

凍結指動態資料(也稱為記憶體表)的更新到一定時間或者資料量達到一定規模後,oceanbase停止該塊動態資料的修改,後續的更新寫入新的動態資料塊(即新的記憶體表),舊的動態資料塊不再修改,這個過程稱為凍結

轉儲出於節省記憶體或者持久化等原因將乙個凍結的動態資料塊(記憶體表)持久化(轉化為sstable並儲存到ssd固態盤或磁碟上)的過程

資料合併(merge)

查詢時,查詢項的基準資料與其動態資料(即增刪改操作)合併以得到該資料項的最新結果的過程。此外,把舊的基準資料與凍結的動態資料進行合併生成新的基準資料的過程也稱為資料合併

聯表(join)

一張表與另一張或幾張表基於主鍵的左連線關係,類似於dbms的自然連線

cowcopy on write的縮寫,在oceanbase中特指btree在更新時複製資料備份寫入,避免系統鎖的技術手段

解壓後會有安裝教程,由於教程太長我就不在部落格展示了

分布式資料庫

網路選課系統中分布式資料庫設計 何翠雙王巧雲張麗麗 摘要 關鍵字 選課 分布式 資料庫 distributed system of on line course choosing abstract key words course choosing distributed database 隨著學校...

分布式資料庫

1 背景 我們知道資料是乙個公司的命脈,隨著業務越做越大,資料量也會越來越大,計算也會越來越複雜,效能,可靠性,可擴充套件性的需求就會越來越強烈,這個時候乙個集中式的資料庫顯然已經滿足不了需求了。對於技術決策者來說有兩條路可以走,第一 按照現有的大型資料庫的解決方案,比如sql server clu...

分布式資料庫

一 分布式資料庫的出現的場景 網際網路 軟體國產化 o2o 五新 新零售 新製造,新金融 新資源 新技術 等主題接連提出來,並且在各個行業落地,給資料庫帶來了巨大機會,具體包含3個方向 1.遠超單機資料庫容量的資料儲存和訪問峰值 2.實時資料分析檢索 oltp兼顧olap 3.更高階別的容災需求。這...