<span id="bph7r"><noframes id="bph7r">
<span id="bph7r"><video id="bph7r"></video></span>
<span id="bph7r"></span><span id="bph7r"><video id="bph7r"></video></span>
<strike id="bph7r"><noframes id="bph7r"><strike id="bph7r"></strike>
<span id="bph7r"></span>
您現在所在的位置:首頁 - 權威技術
Oracle數據庫分片技術

 

什么是分片技術(Sharding)?

Sharding 中文名叫數據分片(是指數據層的水平分區),是對數據進行橫向擴展的一種方式。數據量增加,我可以通過加一臺機器,來擴展其容納能力和處理能力。

 

Sharding它解決三個關鍵問題:

1.數據的路由

是數據庫告訴應用程序,你讓我查的數據目前在哪個分片上,這條路怎么走過去。

2.數據的分片

是實際數據的存放地點,往往每個分片就是一臺單獨的服務器(含存儲)。

3.分片的元數據信息保存

是被切割放在不同的機器上,那么需要有個集中的地點存放數據分片的信息,即分片元數據的信息。

總結一下就是:應用問路由怎么走,路由去查詢元數據得知需要的數據在哪個分片上,最終應用訪問到該分片上。

 

Oracle分片- 數據庫架構模式

•Oracle Sharding在提供Sharding的同時,并沒有犧牲掉關系型數據庫所帶來的優秀特性,比如說關系型數據建模,SQL編程接口,豐富的數據類型,在線的表結構變更,充分利用CPU多核的擴展性,高級安全,壓縮,高可用,ACID特征,一致讀,所有的Oracle數據庫的優勢仍然還在那里,但是,額外,提供了Sharding的優勢。

•對于Oracle Sharding的上層來說,使用的是Oracle GDS(Global Data Services)框架來實現自動部署和shading的管理以及拓撲復制。GDS還同時提供了對于整個SDB訪問的負載均衡和基于位置的路由功能。在GDS框架中,global service manager負責將應用過來的請求轉發到合適的shard上,另外還有一個shard catalog數據庫,支持跨shard的查詢功能,同時SDB的配置數據也都存在這個catalog數據庫中。

•對于Oracle Sharding的底層來說,使用的是Oracle長久以來一直存在的分區(partitioning)技術。Oracle Sharding就其本質上來說,實際上就是分布式分區,將以前的分區擴展支持到跨不同的物理數據庫上。

 

Oracle分片的優點 

•數據自動分片到獨立的分片數據庫(分片)中,這些庫組成一個數據庫池。

•這個數據庫池以一個單一的邏輯庫的方式呈現給應用程序

•支持在線添加分片以增加整體吞吐量

•數據量,客戶量和交易量可線性擴展

•一個分片庫的故障或減速不影響其他分片的可用性

•自動部署數據庫復制實現分片級的高可用性(RAC 可選)

•每個分片可獨立補丁和升級,不影響其他分片

•靈活的分片組織- 一致性哈希,區域,列表或復合分片(range-hash, list-hash)

•數據分布可基于可用性,災難恢復,性能,或法規要求決定 

 

Sharding適合所有的數據庫應用嗎?

既然Sharding聽上去很厲害,那么是不是現在只要遇到有性能問題的數據庫,一律都可以使用Sharding技術來解決呢?當然不,Sharding不會也不可能是FAST=TRUE這樣的參數。一個適合Sharding技術的應用,必須有非常好的數據模型,和清晰的數據分布策略(比如是一致性哈希,范圍或者列表分區),并且訪問這些數據也是總要通過shard key來過濾的,只有這樣,才能在整個Sharded數據庫架構中很好地將請求路由到合適的數據庫上。這樣的shard key可能會是客戶編號,國家編號,身份證號碼等。

 

Sharding適合的業務場景:

專用OLTP應用Custom OLTP Applications,海量擴展和高可用性 MassiveScalability and HA

•大規模計費系統 Large billing systems

•航空票務系統 Airline ticketing systems

•在線金融服務Online financial services

•媒體服務公司Media companies

•在線信息服務Online information services

•社交媒體公司Social media companies

 

分片數據庫物理架構 

Sharding分片數據庫的物理架構如下所示:

 

分片數據庫組件

•分片目錄庫 Shard Catalog

存儲SDB元數據 metadata

跨片查詢的協調數據庫 coordinator

包含應用的元數據定義和復制表 Contains application gold schema & duplicated tables

•分片導向器 Shard Director(Global Service Manager)
提供從應用層到分片連接請求的路由導向 。
通過ONS FAN發布運行時SDB拓撲圖,均衡負載的建議跨數據庫服務故障切換和管理。

連接時負載均衡 Connect-time loadbalancing。

•全局服務  Global Service

通過服務屬性(service attributes)建立工作負載管理策略 workloadmanagement

本地服務優先 + {本地性, 復制時延, 角色, 數據庫可選擇性, 負載均衡目標}

Local service + {Locality, replication lag, role, database cardinality,load balancing goals}

•GDSCTL 

管理SDB及其組件的命令行界面

•GDS區域 GDS Region 

網絡上鄰近的一組分片和客戶端

 

Sharding的部署方式

Sharding的部署方式非常的靈活,不僅可以在不同的主機(不同的操作系統)上部署;也可以部署在不同的地方,同時支持云上的部署。如下圖:

 

Oracle分片方式

對于Oracle Sharding的底層來說,使用的是Oracle長久以來一直存在的分區(partitioning)技術。Oracle Sharding就其本質上來說,實際上就是分布式分區,將以前的分區擴展支持到跨不同的物理數據庫上。使用的是Oracle GDS(Global Data Services)框架來實現自動部署和shading的管理以及拓撲復制。

 

總結

OracleSharding是分片數據層架構,數據是橫向分區在獨立的數據庫。每個數據庫的配置被稱為分片單元。所有的分片單元在一起組成一個邏輯數據庫,稱為數據庫分片。

它為企業提供了完整數據平臺,對于業務系統需要分庫分表,要線性水平擴展,沒問題用Sharding最合適,它能做到自動化端到端的生命周期管理,為新一代開發者提供一個企業級的數據庫平臺。

 

 

 

 

 

 

 

【文章來源:Oracle官網】

 

 

 

 

 

上一篇:純干貨:手把手地教你搭建Oracle Sharding數據庫分片技術
下一篇:Oracle Database 12c In-Memory POC指南
[返回] TOP
色狠狠一区二区三区香蕉91