Oracle Sharding: 雲端分布式關係型資料庫

2021-03-02 甲骨文雲技術

Oracle Sharding現已正式登陸OCI Marketplace!支持雲端全自動部署!感興趣的小夥伴們快來搶先體驗!

體驗教程:https://medium.com/oracledevs/deploying-geo-distributed-oracle-database-on-oracle-cloud-infrastructure-oci-786ad3ec33c6

 

Oracle Sharding是什麼?

Oracle資料庫從12.2版本開始引入Sharding(分片)特性,集成了NoSQL和成熟的關係型資料庫的優勢,到如今已經經過多個版本迭代成為一整套成熟的分布式關係型資料庫解決方案。Oracle Sharding可以讓用戶將數據分布和複製到一組Oracle資料庫集群中,集群中的資料庫只需要網絡連接,不需要共享軟體和硬體。Oracle Sharding可以為最嚴苛的應用提供線性擴展能力和完全容錯能力。下面就讓我們來詳細介紹一下Oracle Sharding吧!

 

使用Oracle Sharding的優勢有哪些呢?

線性擴展

Oracle Sharding採用無分享架構(shared-nothing architecture),消除了有分享架構帶來的性能瓶頸,理論上可以提供無限的擴展性。目前支持最多1000個分片資料庫。

極致的可用性和故障隔離

由於各個資料庫分片不再共享硬體設備,集群的單點故障可以有效被消除。如果集群中的一個分片節點出現故障,其他節點的性能和可用性不會受到影響。與此同時,Sharding與Oracle Data Guard 和Oracle Golden Gate等技術高度集成,可進行自動配置並提供備份和故障恢復服務。在使用Data Guard備份時,Sharding集群支持滾動升級和自動主備庫切換。

數據可按地理位置分布

Oracle Sharding支持數據的全球部署。在分片環境下,整個資料庫集群組成單一邏輯資料庫,其中的數據可以拆分儲存到不同的地理位置。這種按照地理位置拆分數據的方式既可以滿足數據隱私性的相關規定,也可以通過將數據存儲到靠近客戶地點的方式來獲得更好的性能。

 

Oracle Sharding適用哪些應用場景呢?

實時聯機交易處理(OLTP)

實時聯機交易處理類應用一般具有以下特點:交易高吞吐量,大量的用戶群體,海量的數據,嚴格的數據一致性要求和進行規模化數據管理的需求。這類應用一般包括:電商類應用、金融服務類應用(例如行動支付)、大規模軟體即服務SaaS應用(例如帳單處理、醫療)等。這些應用均可以從使用Oracle Sharding中獲益。

全球分布的應用

許多企業級應用因為要服務不同國家和地區的客戶群體,天然具備全球化分布的屬性。Oacle Sharding可以在讓分布在不同地區的應用客戶端訪問同一個邏輯資料庫的同時,保證數據本地化存儲和訪問。這種架構的優點有:可以嚴格執行數據隱私性保護的相關法律規範,進行數據的本地化存儲和訪問;更低的數據跨地區複製和移動的開銷;更優化的服務級別協議(SLA),因為系統在一個區域的維護和下線不影響其他地區;更簡便的資料庫管理。

物聯網和流數據處理

這類應用通常要求快速的對海量數據進行收集和流處理。Oracle Sharding集成了基於直接路徑(direct path)I/O的高性能流處理庫。利用Oracle資料庫的這項技術,應用可以以每秒鐘上億條記錄的速度將從終端設備收集來的數據載入Sharding資料庫。載入以後,用戶便可以運用Oracle資料庫的強大的分析能力立即對這些數據進行進一步處理。

日誌存儲和檢索

結合Oracle資料庫的原生JSON支持功能,Oracle Sharding可以被配置成為高性能分布式日誌存儲和全文檢索引擎,同時具備彈性伸縮和高可用等特性。

機器學習

許多機器學習應用都要求對模型進行實時訓練和評估。這類訓練和評估很多都採用對某個特定標籤的數據(例如某個用戶的交易模式和設備使用情況)使用異常檢測、聚類等算法。這類數據標籤便可以被配置成為分片鍵(Sharding Key)來對數據集進行劃分。利用Oracle資料庫內置的機器學習算法,這些模型訓練和評估的操作便可以直接在資料庫內部進行,省去了單獨構建相關基礎設施和數據管線的操作。

大數據分析

當需要分析的數據大於單體資料庫的承載能力的時候,Oracle Sharding可以幫助用戶構建存儲海量數據的數據倉庫。Oracle 20c版本推出了聯合分片(Federated Sharding)功能,可以幫助用戶整合多個已有資料庫中的數據,並對他們進行聯合查詢。用戶可以直接把現有資料庫建立成為聯合分片集群,在集群上直接運行數據分析的SQL語句,省去了漫長的數據遷移流程。

替代NoSQL資料庫

NoSQL解決方案大都缺乏關係型資料庫的基本功能,例如SQL支持、複雜數據類型、多CPU擴展、在線模式(schema)修改、ACID特性等等。Oracle Sharding可以讓用戶在享受所有這些Oracle資料庫優勢的同時擁有近乎無限的水平擴展能力。

Oracle Sharding支持多種分片方式

用戶可以使用多種模式來創建分片表,如基於分片鍵的一致性哈希(系統管理分片)、基於分片鍵範圍或列表(用戶自定義分片)或者兩個層級相結合(混合分片)。

Oracle Sharding對於單個分片的要求非常寬泛,每一種資料庫實例都可以作為一個分片,比如PDB,RAC集群,Exadata。

系統管理分片

不要求用戶指定數據和分片的對應邏輯。系統會按照分片鍵的一致性哈希值自動將用戶數據分布到不同的分片中。這種算法一般用於對數據進行隨機均勻分片。

用戶自定義分片

用戶可以自己指定數據和分片對應邏輯。這種分片方式的應用場景一般是管理員要求完全控制數據的分布和移動,例如出於性能、監管、或其他原因,某些數據必須要存儲到特定的分片上。

混合分片

用戶可以將數據先按照一級分片鍵的範圍或者列表分片,再數據按照二級分片鍵的一致性哈希進一步分片。混合分片結合了系統管理分片和用戶自定義分片的優勢,在諸如符合數據本地化保存的法規要求的場景下,混合分片可以讓用戶享受數據自動化分布和完全掌控數據存儲位置的雙重便利。

Oracle Sharding構建於分區表(table partitioning)的技術上,因此可以支持所有的二級分區方法。

靈活的客戶端請求路由模式

Oracle Sharding 支持基於分片鍵的從應用到分片的直接路由、通過catalog節點進行代理路由、以及路由到中間件層(例如與資料庫分片臨近部署的應用容器、web容器等)。Oracle資料庫的客戶端驅動和連接池等組件都內置了對Sharding的支持。

基於分片鍵直接路由

Oracle的客戶端驅動(JDBC, OCI, UCP, ODP.NET)可以根據連接欄位中包含的分片鍵進行高效的基於數據的路由。連接層會維護一個分片路由緩存,每次通過查詢該緩存直接將客戶端請求路由到數據所在的資料庫分片。

代理路由

若客戶端SQL操作不指定分片鍵,該操作將由catalog節點進行代理路由。代理路由可以執行單分片SQL操作和跨分片SQL操作。

中間件層路由

在將數據層分片的基礎上,用戶可以進一步將web層和應用層分片,將這些中間件層按照他們服務的資料庫分片進行分布,形成一種稱為「泳道(swimlane)」的模式。用戶可以配置網絡層,使其可以根據客戶端請求中的分片鍵將請求路由到對應的「泳道」中,從而與對應的資料庫分片建立連接。


聯合分片

Oracle 20c版本新增了聯合分片(Federated Sharding)功能,可以將多個已有Oracle資料庫組織為一個Oracle Sharding集群。

全球化的業務一般將同樣的應用在不同的區域中部署很多份副本。聯合分片功能可以整合這些應用的資料庫實例,組成一個單一的聯合資料庫,從而提供以下優勢:

自動化部署

Oracle Sharding 可以通過Terraform, Kubernetes, Ansible 腳本的方式進行高度自動化的部署。這些部署腳本只需要一個簡單的描述集群結構的配置文件作為輸入,便能夠在一臺機器上運行,完成對於運行在其他各個機器上的整個資料庫集群的部署。當發生錯誤時,部署腳本還可以進行暫停、繼續、清理等操作。

與此同時,用戶可以訪問Oracle Cloud Marketplace 輕鬆在Oracle雲服務上部署Sharding集群。

自動化數據遷移

使用Oracle Sharding 不要求應用對現有的SQL查詢和修改的語句進行修改。Sharding在數據定義語言(DDL)中增添了新的語法用來創建和修改分片表(Sharded Table)和複製表(Duplicated Table)。與此同時,用戶可以使用這兩種工具來幫助實現從單機Oracle資料庫遷移到Oracle Sharding。

Oracle Sharding Advisor

從20c版本開始,Oracle Sharding引入了一個新的資料庫遷移規劃工具Sharding Advisor來幫助用戶設計分布式資料庫的模式(schema)。該應用通過分析用戶現有資料庫的模式和數據訪問特點來推薦最優化的分布式資料庫的模式,推薦算法可以基於並行度、減少跨分片連結查詢或者減少重複數據等。

Oracle Data Pump

Oracle Data Pump增加了對於Sharding的原生支持。現在用戶可以在分片資料庫上運行該工具直接將數據遷移到分片裡。

 說了這麼多,小夥伴們也需要注意,Oracle Sharding並不是所有資料庫性能問題的終極解決方案哦。Oracle Sharding更適用於數據適合根據某些欄位進行分片的應用場景。


想更進一步了解Oracle Sharding?

歡迎訪問官方文檔(點擊閱讀原文)更詳細的了解Oracle Sharding特性!

掃描下方QR Code即刻預約ADW演示

編輯:殷海英

相關焦點

  • 出海業務猛增迎挑戰,心動網絡資料庫雲端遷移之路
    雲計算具有可擴展、高並發的性能,此前心動網絡大部分業務部署在IDC,為了降本增效逐步使用了阿里雲的ECS、RDS、SLB等產品和服務遷往雲端。其中承載應用的資料庫是上雲升級的重中之重,比如遊戲運維發布、遊戲服務端軟/硬體故障導致服務端重啟,需要資料庫支撐更快的數據讀取能力,以實現業務的快速恢復。
  • DTCC2020阿里雲李飛飛:雲原生分布式資料庫與數據倉庫系統點亮數據...
    雲計算時代,雲原生分布式資料庫和數據倉庫開始崛起,提供彈性擴展、高可用、分布式等特性。資料庫將面臨怎樣的變革?雲原生資料庫與數據倉庫有哪些獨特優勢?二、核心技術&產品介紹2.1企業級雲原生分布式資料庫1)雲原生關係型資料庫PolarDB阿里雲自研關係型資料庫的核心產品是雲原生關係型資料庫PolarDB,通過這下面張圖就可以理解PolarDB的思想,存儲和計算分離,通過RAFT來做高可用、高可靠的保障
  • 進入雲原生、分布式的時代,什麼才是資料庫的正確打開方式
    Gartner 公布 2020 年度全球資料庫魔力象限評估結果,在今年Gartner將OPDBMS(事務性關係型資料庫)與DMSA(大數據管理與分析)合二為一成為新的Cloud DBMS Market(統一的雲資料庫系統市場)的挑戰下,阿里雲挺進全球資料庫第一陣營——領導者象限,是中國資料庫歷史上重大突破,也是中國基礎軟體行業首次進入
  • 黑馬程式設計師:基於oracle資料庫存儲過程的創建及調用
    --記錄型變量默認接受表中的一行數據,不能指定欄位。記錄型變量只能存儲一個完整的行數據2.返回的行太多了,記錄型變量也接收不了1.5. 流程控制1.5.1.JAVA可以通過封裝對象和方法來解決復用問題PLSQL是將一個個PLSQL的業務處理過程存儲起來進行復用,這些被存儲起來的PLSQL程序稱之為存儲過程存儲過程作用:1, 在開發程序中,為了一個特定的業務功能,會向資料庫進行多次連接關閉(連接和關閉是很耗費資源), 需要對資料庫進行多次I/O讀寫,性能比較低。
  • 尹博學:百度分布式資料庫實踐與挑戰
    【IT168 技術】2012資料庫技術大會於4月13日在北京永泰朋福.喜來登酒店隆重召開。本次大會已經是IT168、ITPUB、IXPUB、ChinaUnix聯合主辦的第三屆資料庫技術會議。大會將針對大數據架構設計、資料庫安全、分布式資料庫、商業智能、NoSQL、Hadoop等多個重點話題進行深入探討。
  • 雲端實時歷史資料庫pSpace PLus
    力控 pSpace PLus 是一個面向工業網際網路應用的雲端實時歷史資料庫,具備實時資料庫、時序資料庫、SQL 資料庫等特徵,可支撐工業物聯網平臺的構建與拓展應用。力控 pSpace PLus 覆蓋數據的採集、傳輸、存儲、處理、展示全過程,提供標準的數據接入和對外接口,支持雲端業務的開發。
  • [Python運維]cx_Oracle模塊的安裝
    這部分會和Oracle awr報告穿插著寫上節講了如何安裝Python3.6 ,這節講述如何利用Python 模塊cx_Oracle 連接Oracle資料庫[Python運維]Python3.6的安裝這節包含 oracle客戶端的安裝和cx_Oracle模塊的安裝兩部分環境設置
  • 非關係型資料庫NoSQL的崛起
    其結果是,一支NoSQL(非關係型資料庫)「大軍」就此產生,這種資料庫是專為在數千臺伺服器之間運作而設計的。這些新時代的軟體平臺——包括Cassandra、HBase和Riak等——對資料庫市場進行了改造,不僅有助於Facebook和Twitter等諸多網際網路巨頭的運作,同時也涵蓋了更多的傳統業務。
  • 開源分布式圖資料庫研發商歐若數網獲近千萬美元PreA+輪融資
    歐若數網是一家科技型初創公司,創始團隊來自於 Facebook、阿里巴巴、華為等國內外各大知名公司,在圖資料庫、大數據等領域有豐富的開發和業務經驗。歐若數網致力於開源的分布式圖資料庫 Nebula Graph 的研發,為客戶提供穩定高效的網際網路基礎技術服務。
  • 歐若數網完成近千萬美元Pre-A+融資,打造開源分布式圖資料庫
    歐若數網創始人兼 CEO Sherman Ye 表示:「數據間的關聯關係將會是下一個重要的業務增長點,而快速挖掘數據背後的關聯價值便是提升業務價值的關鍵。國際知名諮詢機構 Gartner 發布的 2020 年十大科技趨勢預測中,關聯關係被認為是一切數據分析產生價值的基礎。
  • 南大通用分布式事務型資料庫GBase 8c滿分通過工信部標準測評
    南大通用分布式交易型資料庫產品GBase 8c在基礎能力、兼容能力、管理能力、高可用、擴展能力、安全能力等50個方面,均滿足資料庫管理平臺基礎能力測試要求,以滿分的優異成績通過「第11批大數據產品能力測評」分布式事務資料庫能力認證。
  • 企業級分布式高性能KV存儲資料庫,騰訊Tendis正式開源
    12月22日消息,騰訊宣布其企業級分布式高性能KV存儲資料庫Tendis開源。消息稱,Tendis是由騰訊互娛CROS DBA團隊和騰訊雲資料庫團隊自主設計和研發的分布式高性能KV存儲資料庫。
  • 騰訊宣布企業級分布式高性能KV存儲資料庫Tendis正式開源
    12月22日消息 近期,騰訊宣布企業級分布式高性能 KV 存儲資料庫 Tendis 正式開源。   Tendis 是騰訊互娛 CROS DBA 團隊 & 騰訊雲資料庫團隊自主設計和研發的分布式高性能 KV 存儲資料庫,兼容 Redis 核心數據結構與接口,可提供大容量、低成本、強持久化的資料庫能力,適用於兼容 Redis 協議、需要大容量且較高訪問性能的溫冷數據存儲場景。Tendis 目前已經被應用到騰訊內、外部大型項目中。
  • 圖資料庫的類別有哪些?數易軒解讀:圖資料庫分類與原理
    非原生(Non-Native)圖存儲:採用關係資料庫、面向對象資料庫或其它通用數據存儲策略存儲數據,未專門優化存儲方式。非原生圖處理:不採用免索引鄰接機制保存節點之間的關係。02四類圖資料庫基於底層存儲模式和處理方式兩個維度,我們可以將圖資料庫產品劃分為四個分類。
  • 圖資料庫如何在房地產行業場景進行應用
    圖資料庫近年來越來越受到眾多企業的關注,圖資料庫在處理海量且繁雜的數據時,與傳統關係型資料庫相比有得天獨厚的優勢與效率。那麼百億級圖譜如何實現毫秒級查詢的呢?我們又如何挑選到一款適合實際應用場景的圖資料庫呢?
  • 阿里雲POLARDB*:創新的雲託管資料庫
    關係型資料庫管理系統(RDBMS)是全球性企業的基石,也是公司運營和數字轉型的必備條件。關係型資料庫作為雲託管服務應用廣泛,稱為資料庫即服務(DBaaS)解決方案。但是基於雲的RDBMS可能本身存在難題。因此,雲託管關係型資料庫解決方案必須實現數字轉型。常見的資料庫有MySQL*和Oracle資料庫*,但不管是內部託管,還是雲託管,它們可能均難以保護、管理和擴展,而且可能達不到所需性能和服務質量(QoS)。
  • Hello,圖資料庫!再見,DBA!
    1977年,矽谷一個30多歲的男人,憑藉IBM的一個「失誤」,成功開發了世界上使用最廣泛,最成功的關係型資料庫產品,就是後來的Oracle。到了1995年,IBM才發布了其關係型資料庫產品,DB2。
  • 從資料庫到全棧數據解決方案,達夢不走捷徑
    如今,隨著雲計算、大數據、人工智慧等技術不斷走向落地,新場景和新應用大量誕生,資料庫從以關係型資料庫為主向多樣化資料庫並存的趨勢發展,讓資料庫這條賽道迎來了前所未有的契機。過去依靠「一招鮮吃遍天下」的關係型資料庫已經不能勝任用戶多樣化業務場景的需求。比如,在客服問答系統、金融風控、司法輔助等多個業務場景中廣泛使用的知識圖譜技術,其本質是語義網絡的知識庫,背後需要圖資料庫來高效處理大量、複雜、互聯和多變的圖數據,其業務特點和規模是傳統關係型資料庫所不能支撐起來的。
  • 國產資料庫行業引領者 CirroData亮相第十一屆中國資料庫技術大會
    會議以「架構革新,高效可控」為主題,邀請了國內資料庫領域的頂級專家圍繞數據架構、AI與大數據、傳統企業資料庫實踐和國產開源資料庫等內容展開分享和討論。東方國信CirroData資料庫受邀在會上發表題為《金融行業企業級數據架構變革規劃及落地實踐》的演講,並接受記者採訪。會議首日,東方國信金融事業部技術總監陳志剛發表演講。
  • 區塊鏈硬核解析(一):區塊鏈是一種共享資料庫嗎?
    也就是說數據可共享本身就是資料庫的基礎功能之一,不需要額外使用區塊鏈技術來建立資料庫的數據共享能力。其次,從資料庫分類看,目前常見分類按照數據結構的組織不同,可分為:「關係型資料庫」和「NoSQL資料庫」;按照部署模式不同,可分為:「單機資料庫」和「分布式資料庫」等,也從未出現過按照數據共享程度分類的資料庫。