閱讀540 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Oracle 12.2新特性掌上手冊 - 第三卷 Sharding 的增強

編輯手記:Sharding技術我們談了好久,想必大家並不陌生,該功能12.2最新版本中,也將變得越來越完善,今天我們一起來學習。

注:文章內容來自官方文檔翻譯。若需要了解更多,請查閱官方文檔


1、about Sharding

簡單來說,Oracle的Sharding技術就是通過分區(Partioning)技術的擴展來實現的。以前一個表的分區可以存在於不同的表空間,現在可以存在於不同的數據庫。不同分區存在於不同數據庫,這就將數據隔離了開來,Sharding就此實現。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

Sharding是一種數據層架構,其中數據在獨立數據庫之間進行水平分區。每個數據庫托管在專用服務器上,具有自己的本地資源 - CPU,內存,閃存或磁盤。 這種配置中的每個數據庫稱為分片。 所有的分片一起組成一個邏輯數據庫,稱為分片數據庫(SDB)。水平分區涉及跨分片分割數據庫表,以便每個分片包含具有相同列但行的不同子集的表。以這種方式分割的表也稱為分片表。


2、Benefits of Sharding

Sharding為最高要求的OLTP應用提供線性可擴展性和完整的故障隔離。其主要優點包括:

  • 線性可擴展性。 Sharding消除了性能瓶頸,並且可以通過添加分片來線性擴展性能和容量。

  • 故障遏製。分片是一種無共享硬件基礎架構,可消除單點故障,例如共享磁盤,SAN和群集,並提供強大的故障隔離 - 一個分片的故障或減慢不會影響其他分片的性能和可用性。

  • 數據的地理分布。分片使得可以盡量接近消費者進行存儲特定數據,並且當數據必須位於特定管轄區時滿足監管要求。

  • 滾動升級。一次在一個分片上應用配置更改不會影響其他分片,並允許管理員首先測試對小數據子集的更改。

  • 雲部署的簡單性。分片非常適合在雲中部署,可以根據需要調整大小以適應任何可用的雲基礎設施,並且仍然實現所需的服務水平。 Oracle Sharding支持內部部署,雲和混合部署模型。


與實現分片的NoSQL數據存儲不同,Oracle Sharding提供了分片的優點,而不會犧牲企業RDBMS的功能。例如,Oracle Sharding支持:

關係模式

數據庫分區

ACID屬性和讀取一致性

SQL和其他編程接口

複雜數據類型

在線模式更改

多核可擴展性

高級安全

壓縮

高可用性功能

企業級備份和恢複


3、Oracle Sharding體係結構的組件

Oracle Sharding是適用於OLTP應用程序的可擴展性和可用性功能。它可以在不共享硬件或軟件的Oracle數據庫池中分發和複製數據。應用程序將數據庫池視為單個邏輯數據庫。應用程序可以通過向池中添加數據庫(分片),在任何平台上將數據、事務和用戶彈性擴展到任何級別。 Oracle 12.2支持擴展到1000個分片。


下圖說明了Oracle Sharding的主要架構組件:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

  • 分段數據庫(SDB) - 單個邏輯Oracle數據庫,橫跨在沒有共享硬件或軟件的物理Oracle數據庫(分片)池中進行水平分區

  • 分片 - 承載分片數據庫子集的獨立物理Oracle數據庫

  • 全局服務 - 提供對SDB中數據的訪問的數據庫服務

  • Shard目錄 - 支持自動分片部署,集中管理分片數據庫和多分片查詢的Oracle數據庫

  • 分片導向 - 網絡偵聽器,可根據分片鍵實現高性能連接路由

  • 連接池 - 在運行時,通過跨池連接路由數據庫請求,充當分片導向

  • 管理接口 - GDSCTL(命令行實用程序)和Oracle企業管理器(GUI)


4、關於分片

Shards是托管在具有自己的本地資源(CPU,內存和磁盤)的數據庫服務器上的獨立Oracle數據庫。在分片之間不需要共享存儲。分片數據庫是分片的集合。 分片可以放置在一個區域或不同的區域中。 在Oracle Sharding的環境中,一個區域代表一個數據中心或處於緊密網絡鄰近的多個數據中心。


可以使用Oracle複製技術(如Data Guard)為HA和DR複製碎。 對於HA,備用分片可以放置在放置主分片的相同區域。 對於DR,備用分片位於另一個區域。


5、Global Service(全球服務)

全局服務是對傳統數據庫服務概念的擴展。傳統數據庫服務的所有屬性都支持全局服務。 對於分片數據庫,為全局服務設置了其他屬性( 例如數據庫角色、複製滯後限製、客戶端和分片之間的區域關聯性等), 對於讀寫事務工作負載,創建單個全局服務以從SDB中的任何主分片訪問數據。 對於使用ADG的高可用性分片,可以創建單獨的隻讀全局服務。


6、Shard Catalog

Shard Catalog是一個專用的Oracle數據庫,它是SDB配置數據的持久存儲,並在分片數據庫的集中管理中發揮關鍵作用。所有配置更改(例如添加和刪除碎片和全局服務)都在Shard Catalog上啟動。 SDB中的所有DDL都通過連接到Shard Catalog來執行。


Shard Catalog還包含SDB中所有重複表的副本,使用實例化視圖可以自動將的表更改複製到所有分片中。Shard Catalog數據庫還用於處理不指定分片關鍵字的分片查詢,充當查詢協調器。


使用Oracle DG實現Shard Catalog高可用性是建議的最佳做法。Shard Catalog對SDB的可用性沒有影響。Shard Catalog的中斷僅影響在完成自動故障轉移到備用 Shard  Catalog所需的短暫時間內,執行維護操作或多分片查詢的功能。 OLTP事務繼續由SDB路由和執行,並且不受Catalog中斷的影響。


7、Shard Director(分片導向)

Oracle Database 12c引入了全局服務管理器,以根據數據庫角色、負載、複製滯後和位置進行路由連接。為了支持Oracle Sharding,全球服務管理器支持基於數據位置的連接路由。在Oracle Sharding的環境中,全局服務管理器被稱為分片導向。


分片導向是全局服務管理器的特定實現,它充當連接到SDB的客戶端的區域偵聽器,維護SDB的當前拓撲圖,基於在連接請求期間傳遞的分片鍵,將連接請求路由到適當的分片。


對於典型的SDB,每個區域的專用低端商用服務器上安裝一組碎片導向,若要實現高可用性,可以部署多個分片導向。在Oracle 12.2中,可以在給定區域中部署最多5個分片導向.


以下是分片導向的主要功能:

  • 維護有關SDB配置和分片可用性的運行時數據

  • 測量其自身和其他區域之間的網絡延遲

  • 作為客戶端連接到SDB的區域偵聽器

  • 管理全球服務

  • 執行連接負載平衡


今天我們一起來看Sharding技術在Oracle 12.2最新版本有什麼變化?

Oracle Database 12c版本2(12.2)的分片是一種適用的在線事務處理(OLTP)應用程序的架構,其中數據被水平分區到多個分立的Oracle數據庫(稱為分片),這些數據庫不共享硬件或軟件。分片集合作為單個邏輯數據庫呈現給應用程序。


  • Oracle分片支持自動部署高性能路由和完整的生命周期管理.

通過Oracle Data Guard或Oracle GoldenGate replication進行自動部署,可實現單個分片的高可用性。每個分片是一個Oracle數據庫,它們具有相同的功能,隻有極少數的情況下會作為非分片部署中的Oracle數據庫。

Oracle分片用於為分片式數據庫架構顯式設計的自定義OLTP應用程序。

與基於Oracle Real Application Clusters(Oracle RAC)的架構不同,使用分片的應用程序必須具有明確定義的數據模型和數據分布策略(一致的哈希,範圍,列表或組合),主要使用分片鍵訪問數據。密鑰的示例包括customer_id,account_no,country_id等。 Oracle分片還支持數據放置策略和所有部署模型(例如,本地和公共或混合雲)。

Oracle 12.2對數據庫分片做了許多增強:

1、具有完全故障隔離的線性可擴展性。專為Oracle分片而設計的OLTP應用程序可以在任何平台上彈性擴展(數據、事務和用戶)到任何級別,隻需在其他獨立服務器上部署新的分片即可。由於計劃外中斷或計劃維護而導致的碎片的不可用性僅影響該碎片的用戶;它不會影響其他分片用戶的應用程序的可用性或性能。每個分片都可以運行不同版本的Oracle數據庫,隻要應用程序與最早運行的版本向後兼容,即可在執行數據庫維護時輕鬆維護應用程序的可用性。

2、使用許多生命周期管理任務的自動化簡單化,包括係統管理分區,單命令部署和細粒度再平衡。

3、使用智能、數據相關的路由提供卓越的運行性能

4、企業質量(Enterprise quality)良好。每個分片是一個Oracle數據庫,呈現出嚴格的一致性、SQL的全部功能、開發人員與JSON的敏捷性、以及用於安全性、可用性、備份和恢複以及生命周期管理的久經驗證的企業質量(Enterprise quality)。


Oracle Sharding的使用場景

  • Extreme scaling of web-scale OLTP databases 規模較大的web-scale 聯機事務處理數據庫

    主要執行單片操作

  • fault isolation 故障隔離

    單個分片出現故障不會導致真個服務器掛掉

  • Geo-data distribution 地理數據分布

    使數據更接近消費者以減少延遲

    需要滿足在公民國家存儲用戶數據的監管要求


Oracle Sharded 數據庫的完整平台包括:

1、水平分割10,100或1000個不共享硬件或sorware的離散Oracle數據庫的數據和工作負載

2、自動端到端生命周期管理

    對於單片查詢和分片間查詢,允許自動分區/複製、彈性擴展、自動平衡、數據相關路由

3、對以下開發商提供企業級數據庫平台

明確地設計APP與容錯線性縮放;

假定使用JSON的模式靈活性;

從關係型SQL和ACID的強大力量中產生效益。


文章轉自數據和雲公眾號,原文鏈接

最後更新:2017-07-18 11:03:03

  上一篇:go  盤點中國第四次工業革命物聯網的數字亮點
  下一篇:go  【探索新域,擁抱未來】MySQL專家肖鵬侃侃話開源