Oracle Database 12c - Global Data Services
手記:Oracle 12c新加入的GDS特性是針對複製數據庫(使用複製技術,例如ADG,Ogg等)的完整自動化工作負載管理解決方案。今天我們一起來學習GDS的相關知識。
注:文檔內容來自Global-Data-Service白皮書翻譯。
為滿足企業各種業務需求,如高可用性、災難恢複、內容本地化和緩存、可擴展性等,許多組織在本地或遠程的數據中心維護一個或多個生產數據庫的複製。Oracle數據庫一般通過Oracle ADG和Oracle GoldenGate技術策略用於完成數據庫的複製。
1
業務需求與技術的局限性
在GDS之前,複製環境中的每個數據庫都從應用程序和數據庫管理員的角度部署為silo。
存在很嚴重的資源使用不均的現象:一個資源未充分利用的數據庫副本不能用於承擔另一個過度利用的副本的工作負荷。如果生產應用程序工作負載針對特定副本數據庫運行,而該副本意外宕機,則不能實現自動且透明地將服務重新定位到另一個可用副本。
企業嚐試使用手動過程來負載平衡工作負載和響應中斷,或者開發自定義連接管理器和集成的專用網絡負載平衡器,以嚐試自動化過程。但這樣做增加了成本和複雜性,而無法為複製數據庫池提供數據庫服務故障轉移和集中式數據庫服務管理功能。
2
GDS提供了理想DB連接方式
為了在多個複製數據庫分布工作負載來實現係統的高性能和高可用性,工作負載必須智能地負載平衡,以有效地利用所有資源並實現最佳性能。 需要智能地處理中斷,以便應用保持可用,並且如果複製數據庫離線則提供最佳可能的服務質量。 在理想情況下,通過使用複製數據庫池的負載平衡和高可用性可以使用Oracle數據庫中提供的實時信息以最佳方式無縫地進行。 隨著Oracle Database 12c提供的Oracle全局數據服務(GDS)的到來,這一理想得以實現。
GDS在Oracle數據庫的集成框架內統一複製數據庫,從根本上改變了負載平衡和服務管理的模式。 GDS取代了傳統的連接管理器和全局服務(曾是Oracle數據庫唯一在全局數據庫工作負載中的自動工作負載管理的概念),全局服務提供單個係統映像來管理多個副本數據庫之間的工作負載。以全局服務為載體,GDS支持基於區域和基於複製滯後的數據庫工作負載路由,連接和運行時數據庫負載平衡,集中全局服務管理,基於角色的全局服務和跨複製數據庫的全局服務故障轉移和跨數據中心。 GDS是一個良好集成的成本效益解決方案,通過在傳統環境和私有數據雲中跨複製Oracle數據庫無縫管理工作負載,有效實現最佳資源利用率,性能和高可用性。
3
GDS實現技術原理
GDS將服務概念擴展到包括Oracle RAC、單實例、 ADG和GoldenGate的任意組合的全局複製配置。 這允許服務部署在此全局複製配置中的任何位置,支持負載平衡、高可用性、區域關聯性等。 GDS基於經過時間測試的技術構建塊,如服務(動態工作負載管理),Oracle ADG / Oracle Golden Gate複製和Oracle Net Listener。
雖然該功能稱為全局數據服務,事實上組成GDS配置的數據庫可以全局分布或位於同一數據中心內。 客戶端可以通過簡單地指定服務名稱來安全地連接,無需知道提供該服務的物理數據中心資產位於何處,從而實現企業數據雲的高度靈活的部署。 使用GDS時,一組複製的數據庫對應用程序顯示為單個數據源。
GDS配置每個區域包含多個全局服務管理器(GSM)。 GSM是“全局偵聽器”,能夠理解實時負載特性和在複製數據庫上用戶定義的服務放置策略。 這些GSM有助於執行數據庫間服務故障切換(failover)和GDS的負載平衡。 GDS是可以管理多組複製數據庫的共享基礎結構。
4
Global Services與GDS
數據庫服務/服務是用於管理Oracle數據庫中的工作負載的邏輯抽象體。 每個服務表示具有公共屬性,服務級別閾值和優先級的工作負載。可以基於包括要使用的應用功能的工作屬性進行分組。 例如,Oracle電子商務套件為每個應用程序模塊定義一個服務,如總帳、應收帳款、訂單輸入等。
服務內置在Oracle數據庫中,並為工作負載提供單個係統映像。 服務使管理員能夠配置工作負載,管理工作負載,啟用和禁用工作負載,並將工作負載測量為單個實體。 客戶端使用數據庫服務名連接。
在RAC環境中,服務可以跨越一個或多個實例,並基於實時事務性能來促進工作負載平衡。 這提供了高可用性,工作負載的滾動更改以及完全的位置透明度。
對於複製環境,GDS引入了全局服務的概念。 全局服務在一組包含屬於某個管理域(稱為GDS池)的複製數據的數據庫中提供。 GDS池的示例可以是比如SALES池、HR池等。如果GDS配置中的一組數據庫和數據庫客戶端共享網絡鄰近度,則稱其在相同的GDS區域中。 全局服務使用附加屬性(例如全局服務放置,複製滯後和區域關聯性)來擴展傳統數據庫服務。 傳統數據庫服務的所有屬性全局服務都支持。
Global Service Placement:創建全局服務時,GDS允許指定該服務的首選和可用數據庫。 如果首選數據庫失敗,則可用數據庫支持全局服務。 此外,GDS允許將服務配置為在給定GDS池的所有複製數據庫上運行。
Replication lag:客戶端可以路由到並沒有超過全局服務的lag屬性限製範圍外的複製數據庫。
Region Affinity:全局服務允許客戶優先設置到其給定應用應該連接的區域(例如亞洲、歐洲)。
SAFRAN集團MorphoTrak總工程師Aris Prassinos這樣說到:
全局數據服務將幫助MorphoTrak通過在分布式數據中心的複製數據庫之間動態負載平衡應用程序查詢來提高係統利用率。 我們已經通過部署Oracle RAC和Active Data Guard消除了空閑容量的成本,Oracle Database 12c使我們達到了另一個水平。 它通過智能的實時自動化來取代數據中心之間的靜態負載平衡,從而有效利用所有可用容量,從而獲得更高的投資回報率
下圖表示數據庫連接是否使用GDS的區別:
5
GDS的關鍵能力:
1、基於地域的工作負載路由
使用GDS,客戶可以選擇將客戶端連接配置為始終在本地區域的一組複製數據庫之間路由。 此功能允許客戶最大化其應用程序性能(避免訪問遠程區域中的數據庫的網絡延遲開銷)。
2、基於連接時間的負載均衡
GSM使用GDS池中所有數據庫的負載統計信息,區域間網絡延遲和配置的連接時負載平衡目標,以將傳入連接路由到GDS池中的最佳數據庫。
3、基於運行時間的負載均衡
GDS還通過為基於連接池的客戶端(例如OCI,JDBC,ODP.NET,WebLogic等)發布實時負載平衡建議,實現跨複製數據庫的運行時負載平衡。 基於連接池的客戶端通過已經建立的連接實時監測負載平衡和路由數據庫請求。 借助GDS的運行時連接負載平衡特性,應用程序客戶端工作請求會動態路由到提供最佳性能的數據庫。 此外,GDS還支持在數據庫性能發生變化時動態重新分配連接的能力。
4、數據庫間服務故障轉移
如果運行全局服務的數據庫崩潰,GDS考慮服務放置屬性,將自動執行數據庫間服務故障切換到池中的另一個可用數據庫。 GDS發送快速應用程序通知(FAN)事件,以便客戶端連接池可以重新連接到新數據庫。
5、複製基於滯後的工作負載路由
複製數據庫可能滯後於主數據庫。 全局服務允許客戶選擇給定應用程序可接受的滯後容差。 GDS將請求路由到複製滯後低於限製的複製數據庫。 如果複製延遲超過滯後限製,則服務將重新定位到低於閾值的另一個可用數據庫。 新請求路由到滿足滯後限製的數據庫。 如果沒有可用的數據庫,則全局服務將關閉。 一旦滯後解決或達到限製,GDS自動啟動服務。
6、基於角色的全局服務
通過Data Guard Broker進行數據庫角色轉換時,如果分配給服務的角色與數據庫的角色匹配,GDS可以將全局服務自動重新定位到新的主服務器和新的備用服務器。
7、複製數據庫的集中工作負載管理
GDS允許更容易地配置和管理位於具有單個統一框架的任何位置的複製數據庫的資源。
6
GDS的優勢
GDS允許部署和集中管理具有容錯能力的數據庫服務(跨一組複製數據庫)。 GDS框架提供了跨這些數據庫的工作負載平衡。 更具體地說,GDS是一個Oracle集成解決方案,具有以下優點:
更高的可用性和全局可擴展性
支持位於任何數據中心的複製數據庫之間的無縫數據庫間服務故障轉移,從而提高應用程序可用性。
GDS通過允許動態添加數據庫來按需提供可擴展性。 它允許將動態和透明的複製數據庫添加到GDS基礎架構,以獲得額外的資源能力來擴展應用程序工作負載,而不改變應用程序配置或客戶端連接。
通過跨多個數據庫的集成負載平衡,GDS解決了區域間資源碎片。 一個地區未充分利用的資源現在可以用於承擔另一個地區過度利用資源的工作量,從而實現最佳資源利用。
在包含在不同處理器代和不同資源(CPU,內存,I / O)的數據庫服務器上運行的複製數據庫的GDS池中,GDS向較不強大的數據庫發送工作請求,但是直到更強大的數據庫過載, 均衡響應時間。
GDS配置可以由GDSCTL命令行界麵或Oracle Enterprise Manager Cloud Control 12c圖形用戶界麵管理。 通過全局資源的集中管理,現在可以在GDS的統一框架內有效地利用地理上分散的複製數據庫,無論是本地域還是全局數據庫。
複製數據庫的集中工作負載管理,數據庫間服務故障轉移和運行時負載平衡是GDS的獨特功能。 GDS實現了一個真正彈性和敏捷的企業,並擴展了私有數據雲的優勢。
7
Oracle高可用架構與GDS
Oracle最高可用性架構(MAA)是Oracle針對Oracle高級高可用性(HA)技術的集成套件的最佳實踐藍圖。 在IT基礎架構中利用MAA的企業發現他們可以快速高效地部署滿足其高可用性業務需求的應用程序。
全局數據服務是Oracle Database 12c提供的一個戰略新的MAA組件。隨著全局數據服務的出現,Oracle客戶現在可以使用單個框架統一複製數據庫的資源,從而避免需要本地或第三方集成進行負載平衡。 客戶可以最小化其整體高可用性/災難恢複堆棧中的供應商集成接觸點。 GDS與Oracle生態係統良好集成,可在數據中心內和跨數據中心的複製數據庫之間提供工作負載路由,負載平衡和服務故障轉移。 簡而言之,GDS是用於複製數據庫的數據庫負載平衡器,此外還通過數據庫間服務故障轉移功能提供高可用性。
8
GDS的應用案例
全局數據服務在各種場景中都很有用,可以提高複製數據庫的高可用性,可擴展性,性能,整體可管理性和資源利用率,無論它們在何處(在數據中心內部或跨數據中心)。
下圖描繪了在GDS配置中在本地和遠程的複製數據庫上運行的電子商務應用的示例配置。 訂單輸入服務在主數據庫上運行。 報告服務在兩個複製數據庫之間進行負載平衡。
此用例描述了GDS的連接時間和運行時負載均衡功能。 在這種情況下,客戶端連接在連接時被負載平衡。 並且,工作負載請求也在運行時進行負載平衡。
下圖描述了GDS配置中的本地和遠程複製數據庫。 訂單輸入服務在主/主數據庫上運行。 報告服務在兩個複製數據庫上運行。 客戶端連接在運行Reporting Service的Standby / Replica數據庫之間進行負載平衡。
GDS可以在區域內和區域之間的複製數據庫上執行負載平衡。 它考慮了數據庫負載度量,區域親和性,網絡延遲和負載平衡目標。 客戶可以通過使用帶有Active Data Guard和Oracle GoldenGate的GDS來最大化性能並實現高效的資源利用率。
下圖顯示了GDS如何為在複製的數據庫上運行的Reporting Service提供容錯的示例。複製數據庫故障後,GDS可以將報告服務故障轉移到另一個可用數據庫(在本示例中為主/主服務器),然後與在本地複製數據庫上運行的報告服務進行負載平衡。沒有GDS,沒有一種智能和自動的方式,在Oracle GoldenGate的多主機之間的Active Data Guard甚至讀寫服務的一組複製數據庫之間提供隻讀數據庫服務的高可用性,從而導致計劃外停機時間的應用。
GDS在跨數據庫執行服務故障轉移時考慮到配置的全局服務放置策略。客戶可以通過在Active Data Guard和Oracle GoldenGate上啟用GDS來最大限度地提高其數據庫服務的可用性。如圖所示,全局服務故障轉移功能不限於一個數據中心。它可以發生在位於不同區域的數據中心中的複製數據庫。
9
總結
全局數據服務(GDS)是Oracle Database 12c的一個整體自動化工作負載管理功能,它為一組複製數據庫提供工作負載路由,負載平衡和數據庫間服務故障轉移,基於複製滯後的路由,基於角色的全局服務和集中式工作負載管理 其全局分布或位於同一數據中心內。 客戶現在可以使用GDS實現這些優勢,而無需與多點解決方案或本地生產的產品集成。 Oracle Database 12c GDS為在複製數據庫上運行的應用程序工作負載提供更好的硬件/軟件利用率,更好的性能,可擴展性和可用性。
文章轉自數據和雲公眾號,原文鏈接
最後更新:2017-07-18 11:32:45