oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里
編輯手記:隨著Oracle12.2的發(fā)布,Sharding技術(shù)也逐漸變得越來越強(qiáng)大,關(guān)于Sharding,你所關(guān)心的問題的答案,可能都在這里。
注:本文來自O(shè)racle FAQ文檔翻譯
相關(guān)閱讀:什么是Oracle Sharding
Oracle Sharding是為OLTP應(yīng)用程序定制設(shè)計的一種可擴(kuò)展、支持高可用功能的架構(gòu),能夠在不具有共享硬件或軟件的Oracle數(shù)據(jù)庫池中分發(fā)和復(fù)制數(shù)據(jù)。 數(shù)據(jù)庫池作為單個邏輯數(shù)據(jù)庫呈現(xiàn)給應(yīng)用程序,應(yīng)用程序通過在池中添加額外的數(shù)據(jù)庫(分片),可以在任何平臺上彈性擴(kuò)展(數(shù)據(jù),事務(wù)和用戶)到任何級別, 使用Oracle數(shù)據(jù)庫12.2.0.1的第一個版本支持?jǐn)U展到1000個分片。1、Oracle Sharding 的優(yōu)勢
與使用類似的可伸縮性方法的本地部署相比,Oracle Sharding提供了卓越的運行時性能和更簡單的生命周期管理;還提供了企業(yè)DBMS的優(yōu)勢,包括:關(guān)系模式,SQL和其他編程接口,支持復(fù)雜數(shù)據(jù)類型,在線模式更改,多核可擴(kuò)展性,高級安全性,壓縮,高可用性,ACID屬性,一致性 閱讀,使用JSON的開發(fā)人員敏捷性等等。
Oracle分片使用水平分區(qū)在分片之間分布數(shù)據(jù),通過分片分割數(shù)據(jù)庫表,以便每個分片包含具有相同列但行的不同子集的表。從數(shù)據(jù)庫管理員的角度來看,SDB由可以集中或單獨管理的多個數(shù)據(jù)庫組成。
從應(yīng)用程序開發(fā)人員的角度來看,SDB看起來像一個單一的數(shù)據(jù)庫:分片的數(shù)量和跨越它們的數(shù)據(jù)的分布對數(shù)據(jù)庫應(yīng)用程序是完全透明的。 應(yīng)用程序發(fā)出的SQL語句不引用分片,也不取決于分片數(shù)及其配置。2、Oracle Sharding 架構(gòu)設(shè)計上的考慮
OLTP應(yīng)用程序必須明確地為Sharding架構(gòu)設(shè)計,以便實現(xiàn)可擴(kuò)展性和可用性的好處。 這不同于基于Oracle RAC的HA架構(gòu),RAC中可擴(kuò)展性和可用性對應(yīng)用程序是透明的。 使用分片數(shù)據(jù)庫的應(yīng)用程序必須具有明確定義的數(shù)據(jù)模型和數(shù)據(jù)分發(fā)策略(一致的哈希,范圍,列表或組合),主要通過分片鍵訪問數(shù)據(jù)。 分片鍵的示例包括customer_id,account_no,country_id等。Oracle Sharding還支持?jǐn)?shù)據(jù)放置策略(機(jī)架和地理位置感知)以及所有部署模型:內(nèi)部部署模式和公共云或混合云。
對性能要求較高的事務(wù)必須是通常訪問10行或100行的單分片事務(wù)。例如,查找和更新客戶的記帳記錄,查找和更新訂戶的文檔等。在用于高性能事務(wù)的分片之間沒有通信或協(xié)調(diào)。
當(dāng)然還支持多分片操作和非分片鍵訪問,但可能會對性能產(chǎn)生影響。這種交易包括簡單的聚合,報告等 - 通常小于總工作量的10%。3、Oracle Sharding 高可用、可擴(kuò)展性的實現(xiàn)
在上述的設(shè)計考慮的基礎(chǔ)上,在分片數(shù)據(jù)庫架構(gòu)上運行的應(yīng)用程序可以實現(xiàn)更高級別的可伸縮性和可用性。Sharding 數(shù)據(jù)庫的性能會隨著池中分片的增加而線性增長,因為每個分片之間是彼此獨立的。每個分片通常使用本地存儲、閃存和內(nèi)存,為客戶進(jìn)行性能優(yōu)化提供了相對低的成本。第一個版本的Oracle Sharding旨在擴(kuò)展到1,000個分片。分片之間彼此獨立意味著一個分片的中斷或性能較差不會影響在其他分片上執(zhí)行的事務(wù)的可用性或性能。
單個分片的高可用性(HA)由數(shù)據(jù)庫復(fù)制的自動部署提供。默認(rèn)配置是具有自動數(shù)據(jù)庫故障轉(zhuǎn)移的單向Data Guard物理復(fù)制,其實現(xiàn)起來非常簡單。還可以自動部署Active Data Guard(復(fù)制打開只讀)或Oracle GoldenGate(雙向復(fù)制,所有副本均為打開讀寫)。碎片可以在數(shù)據(jù)中心內(nèi)和跨數(shù)據(jù)中心進(jìn)行復(fù)制,復(fù)制是使用Oracle Sharding支持的數(shù)據(jù)放置策略的數(shù)據(jù)中心和機(jī)架感知實現(xiàn)的,當(dāng)然也可以手動配置Oracle RAC以提供Shard HA。
碎片是由一組稱為Shard Director的復(fù)制偵聽器作為路由器的前端。 Oracle客戶端(JDBC,OCI和ODP.net)和Oracle通用連接池(UCP)已得到增強(qiáng),可識別連接字符串中指定的分片鍵,并通過控制每個分片允許的最大連接數(shù)確保可用性。連接層中的分片路由緩存(由分片的初始請求填充)用于將請求直接路由到數(shù)據(jù)所在的分片,以實現(xiàn)最佳運行時性能。如果對分片數(shù)據(jù)庫進(jìn)行任何更改(例如自動重新平衡或添加/刪除分片),則會自動刷新分片路由緩存。為什么Oracle Sharding受到廣泛關(guān)注Oracle Sharding是響應(yīng)客戶對數(shù)據(jù)庫架構(gòu)的需求,可以提供線性可擴(kuò)展性和完全故障隔離的組合,而無需共享存儲或損害Oracle數(shù)據(jù)庫的企業(yè)質(zhì)量:嚴(yán)格的一致性,SQL的全部功能,開發(fā)人員敏捷性 具有JSON,安全性,高可用性,備份和恢復(fù),生命周期管理等。
Oracle Sharding不僅僅將Oracle的企業(yè)質(zhì)量擴(kuò)展到分片式數(shù)據(jù)庫架構(gòu), 并且通過使用自動化來簡化生命周期管理,高級分區(qū)方法來解決各種各樣的場景案例以及數(shù)據(jù)相關(guān)的路由,以實現(xiàn)卓越的運行時性能。 與競爭性分片解決方案或定制部署相比,這些功能為客戶提供了顯著的優(yōu)勢。1、Oracle Sharding 在12.2版本中的新特性
Oracle 12.2在Sharding方面增加了許多新的優(yōu)勢:具有完全故障隔離的線性可擴(kuò)展性。用于Oracle分區(qū)的OLTP應(yīng)用程序可以在任何平臺上彈性擴(kuò)展(數(shù)據(jù),事務(wù)和用戶)到任何級別,只需在額外的獨立服務(wù)器上部署新的分片。由于計劃外中斷或計劃維護(hù)而導(dǎo)致的碎片不可用或減速只影響該碎片的用戶,但不會影響其他碎片用戶的應(yīng)用程序的可用性或性能。每個分片可以運行不同版本的Oracle數(shù)據(jù)庫,只要應(yīng)用程序與最早運行的版本向后兼容即可 - 從而在執(zhí)行數(shù)據(jù)庫維護(hù)時輕松維護(hù)應(yīng)用程序的可用性。
全球數(shù)據(jù)分布,為消費者帶來數(shù)據(jù)和數(shù)據(jù)主權(quán),以滿足數(shù)據(jù)隱私法規(guī)。
多生命周期管理任務(wù)的自動化簡化,這些任務(wù)包括:自動創(chuàng)建分片和復(fù)制,系統(tǒng)管理分區(qū),單一命令部署和細(xì)粒度重新平衡。
使用智能、數(shù)據(jù)相關(guān)的路由,實現(xiàn)卓越的運行時性能。
在不犧牲企業(yè)RDBMS功能的情況下實現(xiàn)分片的所有優(yōu)點。包括:關(guān)系模式,SQL和其他編程接口,復(fù)雜數(shù)據(jù)類型,在線模式更改,多核可擴(kuò)展性,高級安全性,壓縮,高可用性, ACID屬性,一致性讀取,開發(fā)人員與JSON的敏捷性等。2、設(shè)計Oracle Sharding 的意義
Oracle Sharding使用用于部署和管理分片式數(shù)據(jù)庫架構(gòu)的全面解決方案來替代本地的分片方法。 Oracle分片提供了跨分片分布表分區(qū)的新自動化,自動部署分片式數(shù)據(jù)庫,包括HA和數(shù)據(jù)保護(hù)的復(fù)制,高性能路由,負(fù)載平衡和完整的生命周期管理。
Oracle Sharding還針對分片用例顯式優(yōu)化了Oracle數(shù)據(jù)庫經(jīng)過時間驗證的企業(yè)功能。 包括Oracle分區(qū)、Data Guard、Active Data Guard、GoldenGate、JDBC / OCI / ODP.NET連接池、DBCA、OEM、Oracle RAC等。應(yīng)用程序使用Oracle Sharding需要什么條件?
并非所有應(yīng)用程序都可以利用分片數(shù)據(jù)庫。 Oracle Sharding適用于為分片式數(shù)據(jù)庫架構(gòu)顯式設(shè)計的OLTP應(yīng)用程序。需滿足以下條件:應(yīng)用程序必須有一個明確定義的數(shù)據(jù)模型和數(shù)據(jù)分布策略(散列,范圍,列表或復(fù)合),主要通過某個鍵訪問數(shù)據(jù)。 密鑰的示例包括客戶ID,帳戶號,country_id等。
所有需要高性能的事務(wù)必須是單分片事務(wù)。這些事務(wù)為高性能路由提供了一個分片鍵,通常訪問10或100行。 例如,查找和更新客戶的記帳記錄,查找和更新訂戶的文檔等
支持多分片操作或非分片鍵訪問,但性能會降低。 這種交易包括簡單的聚合,報告等 - 通常小于總工作量的10%。Oracle Sharding與其他高可用架構(gòu)的對比1、Oracle Sharding 與RAC
Oracle RAC和Active Data Guard的組合為OLTP和分析應(yīng)用程序提供了透明的橫向擴(kuò)展和可用性,并且可以滿足99 +%的用例需求。 使用Oracle RAC,所有事務(wù)可以對數(shù)據(jù)庫中的任何數(shù)據(jù)起作用,沒有必要分區(qū)數(shù)據(jù)或關(guān)注多分片操作的性能,所有RAC實例共享對同一物理數(shù)據(jù)庫的直接訪問。Oracle Sharding犧牲了透明性,為定制設(shè)計的OLTP應(yīng)用程序提供了巨大的可擴(kuò)展性和高可用性。 使用Oracle Sharding,應(yīng)用程序被設(shè)計為使更新事務(wù)對單個分片中的數(shù)據(jù)起作用。 跨越多個分片的事務(wù)不會受益于與單分片事務(wù)相同的性能和可伸縮性。
Q:在什么場景下使用Oracle Sharding 而不是RAC?
有以下兩種情況:1、當(dāng)Oracle Enterprise Architect或客戶決定Oracle RAC無法解決當(dāng)前或未來的可擴(kuò)展性和可用性要求時,Oracle Sharding會成為首選解決方案;
2、當(dāng)應(yīng)用程序被明確地設(shè)計用于分片數(shù)據(jù)庫時。
注意,分片和Oracle RAC不是互斥的。分片可以使用Oracle RAC或RAC One節(jié)點代替復(fù)制HA。第一個版本的Oracle Sharding的唯一注意事項是RAC必須手動配置; Oracle Sharding不提供使用DEPLOY命令自動部署RAC配置,就像Data Guard / Active Data Guard和Oracle GoldenGate一樣。正在考慮在將來的版本中自動部署RAC配置。2、Oracle Sharding 與多租戶
Oracle多租戶是SaaS和其他數(shù)據(jù)庫應(yīng)用程序的整合解決方案; Oracle Sharding是高容量OLTP系統(tǒng)的可擴(kuò)展性和高可用性解決方案。
Oracle Multitenant支持用于SaaS應(yīng)用程序的DBaaS以及私有、公共和開發(fā)/測試云。它提供了將數(shù)據(jù)庫聯(lián)合在一起成為邏輯數(shù)據(jù)庫的基礎(chǔ)設(shè)施,以實現(xiàn)對應(yīng)用程序透明的所有數(shù)據(jù)的高性能查詢。 Oracle Multitenant通過為Oracle數(shù)據(jù)庫提供最高的整合密度以及將多個集成為一體的簡單性,為降低資本和運營成本提供了獨特的優(yōu)勢。
Oracle Sharding為定制設(shè)計的OLTP應(yīng)用程序提供了巨大的可擴(kuò)展性和高可用性。更新事務(wù)必須指定分片密鑰,并對單個分片中的數(shù)據(jù)執(zhí)行操作,以便受益于分片式數(shù)據(jù)庫架構(gòu)承諾的高性能和可用性。支持多分片操作或非分片鍵訪問,但性能降低。這樣的事務(wù)包括簡單的聚合,報告等 - 理想地小于分片數(shù)據(jù)庫的總工作負(fù)載的10%。
Q:Oracle Sharding是否支持多租戶?Oracle Sharding(12.2.0.1)的初始版本不支持Oracle Multitenant。 計劃在將來的版本中支持單租戶容器數(shù)據(jù)庫,支持多租戶容器數(shù)據(jù)庫。
有同時包含Oracle Sharding和多租戶的場景案例嗎?
有, 當(dāng)提供對Oracle Multitenant的分區(qū)支持時,每個分片將是一個PDB,并且將受益于Multitenant提供任何其他PDB的敏捷性的相同優(yōu)勢。 示例包括:簡單地通過從其當(dāng)前CDB拔出并將其插入到更高版本的CDB中來簡化多租戶架構(gòu)中的分片。
遷移到Oracle Cloud和從Oracle Cloud遷移的簡單性。 可以拔除作為PDB的內(nèi)部部署分片,然后插入Oracle云。
碎片的PDB克隆。3、Oracle Sharding 與Oracle MAA
Oracle Sharding是Oracle MAA的自然演進(jìn),旨在解決針對定制開發(fā)的OLTP應(yīng)用程序的大規(guī)模可擴(kuò)展性和完全故障隔離的特殊用例。 適用于Oracle數(shù)據(jù)庫的所有Oracle MAA原則也適用于包含SDB的各個分片。 將擴(kuò)展Oracle MAA最佳實踐,以解決SDB配置和管理的任何獨特注意事項。4、Oracle Sharding 如何與Oracle集成系統(tǒng)相關(guān)?
Oracle Sharding是與大多數(shù)其他功能一樣的硬件平臺,屬于Oracle MAA可擴(kuò)展性和可用性解決方案的保護(hù)范圍。
Oracle Sharding將受益于底層硬件平臺提供的數(shù)據(jù)庫工作負(fù)載的任何優(yōu)勢。 這意味著Oracle集成系統(tǒng)提供的數(shù)據(jù)庫性能,可用性和可管理性的所有常見優(yōu)點也會使在此類系統(tǒng)上運行的分片數(shù)據(jù)庫受益。Oracle Sharding背后的技術(shù)實現(xiàn)1、數(shù)據(jù)在分片之間如何分配?
Oracle Sharding使用水平分區(qū)來跨分片(離散物理數(shù)據(jù)庫)分割數(shù)據(jù)庫表,以便每個分片包含具有相同列但行的不同子集的表。
跨分片的分區(qū)的分布在表空間級別完成。分片表的每個分區(qū)駐留在單獨的表空間中,每個表空間與特定分片相關(guān)聯(lián)。每個分片上的表分區(qū)與非分片Oracle數(shù)據(jù)庫中使用的常規(guī)分區(qū)沒有區(qū)別。即使表的分區(qū)駐留在多個數(shù)據(jù)庫中,對應(yīng)用程序開發(fā)人員來說,表的外觀和行為與單個數(shù)據(jù)庫中的常規(guī)分區(qū)表完全相同。應(yīng)用程序發(fā)出的SQL語句從不引用分片,也不依賴于分片數(shù)及其配置。
Oracle Sharding提供了幾種可選的分區(qū)方法,可以自動或由用戶確定數(shù)據(jù)的分布,或兩者的組合。2、Oracle支持哪些類型的分片方法?
Oracle Sharding支持三種分片方法:系統(tǒng)管理,用戶定義和復(fù)合分片。系統(tǒng)管理的分片不要求用戶指定數(shù)據(jù)到分片的映射。使用按照一致性哈希分區(qū),自動在分片中分布數(shù)據(jù)。分區(qū)算法均勻且隨機(jī)地在分片之間分布數(shù)據(jù)。這種分布旨在消除熱點并在整個碎片上提供均勻的性能。當(dāng)向SDB添加或從SDB中刪除分片時,Oracle Sharding會自動維護(hù)平衡的數(shù)據(jù)分布。系統(tǒng)管理的分片使用為Oracle Sharding優(yōu)化的一致性哈希分區(qū)策略。系統(tǒng)管理的分片是最常用的分片形式。
用戶定義的分片允許用戶明確指定數(shù)據(jù)到各個分片的映射。當(dāng)由于性能,法規(guī)或其他原因,某些數(shù)據(jù)需要存儲在特定分片上,并且用戶需要對分片之間的數(shù)據(jù)移動進(jìn)行完全控制時使用。用戶定義的分片的另一個優(yōu)點是,在分片的計劃或計劃外中斷的情況下,用戶準(zhǔn)確地知道什么數(shù)據(jù)不可用。用戶定義的分片的缺點是用戶需要監(jiān)視和維護(hù)跨分片的數(shù)據(jù)和工作負(fù)載的平衡分布。用戶定義的分片使用范圍或列表分區(qū)策略。
復(fù)合分片是用戶定義和系統(tǒng)管理的分片的組合,在需要時提供這兩種方法的優(yōu)點。使用復(fù)合分片,數(shù)據(jù)首先按列表或范圍分區(qū),然后通過一致的散列進(jìn)一步分區(qū)。這兩個級別的分片使得可以將數(shù)據(jù)映射到一組分片,然后自動保持該組分片上的數(shù)據(jù)的平衡分布。3、如何在單個分片上包含多個事務(wù)?
對于許多應(yīng)用程序,可以通過將水平分區(qū)與跨所有分片的少量只讀或讀取主表的復(fù)制結(jié)合來實現(xiàn)高百分比的單分片操作。對于通常與分片表一起訪問的相對較小的表,完整表的復(fù)制是一個不錯的選擇。在每個分片中具有相同內(nèi)容的表稱為重復(fù)表。
Oracle Sharding使用物化視圖復(fù)制來同步重復(fù)表的內(nèi)容。每個分片上的重復(fù)表由只讀物化視圖表示。物化視圖的主表位于稱為碎片目錄的特殊數(shù)據(jù)庫中。所有分片上的物化視圖都將以可配置的頻率自動刷新。 CREATE DUPLICATED TABLE自動創(chuàng)建主表,物化視圖和物化視圖復(fù)制所需的其他對象。4、應(yīng)用程序如何知道它在運行時必須連接到哪個分片?
應(yīng)用程序必須指定一個分片鍵,以使用分片式數(shù)據(jù)庫架構(gòu)實現(xiàn)高性能。例如,網(wǎng)上銀行應(yīng)用程序可以設(shè)計為使用當(dāng)用戶作為分片鍵登錄時生成的customer_id。
當(dāng)處理數(shù)據(jù)庫事務(wù)時,應(yīng)用程序?qū)⒎制I傳遞到連接層:Oracle JDBC,OCI和ODP.net客戶端能夠識別連接字符串中指定的分段鍵,以實現(xiàn)高性能數(shù)據(jù)相關(guān)的路由。連接層中的分片路由緩存用于將請求直接路由到數(shù)據(jù)所在的分片。
用于JDBC客戶端的Oracle通用連接池(UCP)還能夠識別連接URL中指定的分片鍵。分片路由緩存用于將連接直接路由到數(shù)據(jù)所在的分片。 Oracle UCP還支持非Oracle應(yīng)用程序客戶端(如Apache Tomcat,WebSphere等)與Oracle Sharding一起使用。
例如,UCP分片路由緩存包含分片鍵范圍到分片的映射。當(dāng)應(yīng)用程序通過分片鍵檢出連接時,UCP從其路由緩存中查找其上存在此鍵的相應(yīng)分片。如果池中有匹配的連接可用,則UCP通過應(yīng)用其內(nèi)部連接選擇算法來返回到這些分片中的一個的連接。如果沒有匹配的連接,則通過將具有分片關(guān)鍵字的請求轉(zhuǎn)發(fā)到Shard Director來創(chuàng)建新的連接。在第一次連接到分片時,連接池檢索分片中的所有鍵范圍,并將它們添加到其路由緩存中,以便后續(xù)連接直接轉(zhuǎn)到分片(即繞過Shard Director)。
如果分片不可用,客戶端連接將自動重定向到HA的分片副本。5、如果重新平衡數(shù)據(jù)或添加/刪除碎片,則路由緩存如何更新?
所有重新平衡和添加/刪除分片操作都由SDB管理層(Shard Catalog和Shard Director)執(zhí)行。在所有這些操作期間,SDB保持可用并在線。一旦重新平衡完成,分片路由高速緩存將失效,并在下次將連接路由到分片時自動刷新。6、如何在多個shard之間重新平衡工作負(fù)載?
在以下情況下需要跨分片的數(shù)據(jù)遷移:當(dāng)一個或多個分片添加到SDB或從SDB中刪除時
當(dāng)跨分片的數(shù)據(jù)或工作負(fù)載分布存在偏差時
在由分片數(shù)量變化觸發(fā)的分片之間重新分布數(shù)據(jù)的過程稱為重新分片。自動重新分片可以在SDB上提供統(tǒng)一的數(shù)據(jù)分布。要理解這是如何完成的,有必要了解如何在碎片上物理分區(qū)數(shù)據(jù)。跨分片的分區(qū)分布通過在駐留在不同分片上的表空間中創(chuàng)建分區(qū)來實現(xiàn)。為了最小化多分片連接的數(shù)量,表族中所有表的相應(yīng)分區(qū)總是存儲在同一分片中。分片表的每個分區(qū)存儲在單獨的表空間中。因此,表空間是SDB中的數(shù)據(jù)分布的物理單位。
分片之間的數(shù)據(jù)遷移單位是塊。塊是一組表空間,用于存儲表系列中所有表的相應(yīng)分區(qū)。塊包含來自表系列的每個表的單個分區(qū)。這保證來自不同分片表的相關(guān)數(shù)據(jù)一起移動。在創(chuàng)建SDB時指定每個分片中的塊數(shù)。圖1顯示了一個具有3個塊的碎片。每個塊都包含一組包含來自多個分片表的相關(guān)數(shù)據(jù)的分區(qū)。還顯示了駐留在所有分片上存在的非分片表空間(Stockitems)中的重復(fù)表。
當(dāng)向SDB添加或從SDB中刪除分片時,會遷移多個塊以保持跨分片的數(shù)據(jù)和工作負(fù)載的均衡分布。 根據(jù)分片方法,重新分片自動發(fā)生或由用戶指示。
當(dāng)發(fā)生數(shù)據(jù)或工作負(fù)載傾斜時,特定塊也可以從一個碎片移動到另一個碎片,而碎片數(shù)量沒有任何變化。在這種情況下,塊遷移由DBA啟動以消除熱點。或者,Oracle Sharding也支持在線拆分一個塊。當(dāng)塊變得太大時,或者只有一部分塊必須遷移到另一個塊時,需要拆分。
RMAN增量備份,可傳輸表空間和Oracle Notification Service技術(shù)用于將塊遷移對應(yīng)用程序可用性的影響降至最低。塊在塊遷移期間保持聯(lián)機(jī)。當(dāng)存儲在塊中的數(shù)據(jù)僅可用于只讀訪問時,有一段很短的時間(幾秒鐘)。遷移組塊的過程由管理員自動啟動。
啟用FAN的客戶端在塊即將在源分片中變?yōu)橹蛔x時,以及在完成塊遷移時在目標(biāo)分片中完全可用時接收通知。當(dāng)客戶端接收到“chunk read-only”事件時,它們可以重復(fù)連接嘗試,直到塊移動完成,或訪問源塊中的只讀塊。在后一種情況下,嘗試寫入塊將導(dǎo)致運行時錯誤。7、分片如何提供線性可伸縮性?
線性可擴(kuò)展性通過消除碎片之間的任何依賴性來實現(xiàn)。 每個分片是獨立的Oracle數(shù)據(jù)庫,不共享任何硬件或軟件。 需要高性能和可擴(kuò)展性的事務(wù)只訪問單個分片中包含的數(shù)據(jù)。 設(shè)計用于Oracle分區(qū)的OLTP應(yīng)用程序可以在任何平臺上彈性擴(kuò)展(數(shù)據(jù),事務(wù)和用戶)到任何級別,只需在額外的獨立服務(wù)器上部署新的分片。 每個分片通常使用本地存儲器,閃存和存儲器,提供以相對低的成本進(jìn)一步優(yōu)化性能的機(jī)會。
通過應(yīng)用程序提供的分片鍵和Oracle客戶端(JDBC,OCI和ODP.net)及Oracle通用連接池(UCP)支持的高性能數(shù)據(jù)相關(guān)路由,將工作負(fù)載定向到相應(yīng)的分片。 分片鍵的示例包括:customer_id,account_no,country_id等。8、分片如何實現(xiàn)故障隔離?
根據(jù)定義,每個分片是獨立的Oracle數(shù)據(jù)庫,不與其他分片共享硬件或軟件。一個或多個碎片的中斷或減速不會影響其他碎片上應(yīng)用程序的可用性。在分片級別用于HA的復(fù)制在分片經(jīng)歷中斷時快速恢復(fù)可用性。同樣,一個分片的計劃維護(hù)不會影響其他分片的可用性。
另外,分片導(dǎo)向器和分片目錄數(shù)據(jù)庫的其他組件也有助于消除單點故障。碎片導(dǎo)向器是一個非常輕量級的進(jìn)程,不包括Oracle數(shù)據(jù)庫實例。冗余碎片引導(dǎo)器部署在每個區(qū)域內(nèi)部署碎片,以確保對SDB的連續(xù)應(yīng)用程序訪問。分片目錄數(shù)據(jù)庫使用Oracle Data Guard復(fù)制和自動故障轉(zhuǎn)移來提供高可用性。目錄數(shù)據(jù)庫對運行時連接的路由沒有影響 - 客戶端連接使用分片路由緩存來實現(xiàn)高性能數(shù)據(jù)相關(guān)的路由。在Data Guard自動故障轉(zhuǎn)移期間,目錄數(shù)據(jù)庫的瞬時不可用性僅導(dǎo)致碎片維護(hù)操作或多分片查詢的短暫中斷。9、如何為分片數(shù)據(jù)庫實施高可用性和災(zāi)難恢復(fù)?
用于任何Oracle數(shù)據(jù)庫的所有常用Oracle高可用性解決方案也用于為分片式數(shù)據(jù)庫提供HA,備份和恢復(fù)以及災(zāi)難恢復(fù)。具有自動數(shù)據(jù)庫故障轉(zhuǎn)移的Data Guard是用于計劃外中斷和計劃維護(hù)的默認(rèn)HA配置,并自動為每個分片部署;
管理員可以自動部署Active Data Guard(所有分片副本以只讀方式打開)或Oracle GoldenGate雙向復(fù)制用于分片HA;
管理員可以手動配置用于分片HA的Oracle RAC
Oracle恢復(fù)管理器(RMAN)和閃回在提供分片級別的備份和基于時間點的恢復(fù)
零數(shù)據(jù)丟失恢復(fù)設(shè)備提供高效的企業(yè)備份和恢復(fù)。恢復(fù)設(shè)備可以執(zhí)行實時備份,從而保護(hù)SDB中的每個事務(wù)。
每個分片的其他遠(yuǎn)程副本由Data Guard,Active Data Guard或Oracle GoldenGate維護(hù),并為站點中斷提供實時災(zāi)難恢復(fù)和數(shù)據(jù)保護(hù)。
基于版本的重新定義在部署修改后端數(shù)據(jù)庫對象的應(yīng)用程序的新版本時提供了對分片的在線修補(bǔ)。云上支持Oracle Sharding嗎?
Oracle數(shù)據(jù)庫云服務(wù)(PaaS)目前不提供用于部署分片數(shù)據(jù)庫的整體自動化,但 使用Oracle數(shù)據(jù)庫云服務(wù)自動部署Oracle Sharding將會在2017年被列入計劃,計劃支持混合云和全部云部署模型,以及單數(shù)據(jù)中心和多數(shù)據(jù)中心部署。
然后,Oracle Sharded數(shù)據(jù)庫可以使用cookbook部署在Oracle Cloud(DBCS實例)上。
Q:如何為Oracle Cloud(PaaS)授權(quán)Oracle Sharding?
使用DBCS EE和DBCS EE高性能(HP),僅限使用三個主分片。 (待機(jī)分片數(shù)量沒有限制);使用DBCS EE極端性能(EP)和Exadata云服務(wù)(ECS),對主分片或備用分片數(shù)量沒有限制。
有任何疑問可以加入云和恩墨大講堂跟講師面對面交流。加入"云和恩墨大講堂"微信群,參與討論學(xué)習(xí)
總結(jié)
以上是生活随笔為你收集整理的oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地磅称重软件源码_电脑设备器件+塔吊主吊
- 下一篇: 保镖机器人作文_关于机器人作文400字