天天看點

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)的到來,這一理想得以實作。

Oracle Database 12c - Global Data Services

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區域中。 全局服務使用附加屬性(例如全局服務放置,複制滞後和區域關聯性)來擴充傳統資料庫服務。 傳統資料庫服務的所有屬性全局服務都支援。

Oracle Database 12c - Global Data Services

認識幾個概念

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的差別:

Oracle Database 12c - Global Data Services

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基礎架構,以獲得額外的資源能力來擴充應用程式工作負載,而不改變應用程式配置或用戶端連接配接。
Oracle Database 12c - Global Data Services

更好的性能和彈性

通過跨多個資料庫的內建負載平衡,gds解決了區域間資源碎片。 一個地區未充分利用的資源現在可以用于承擔另一個地區過度利用資源的工作量,進而實作最佳資源利用。 在包含在不同處理器代和不同資源(cpu,記憶體,i / o)的資料庫伺服器上運作的複制資料庫的gds池中,gds向較不強大的資料庫發送工作請求,但是直到更強大的資料庫過載, 均衡響應時間。
Oracle Database 12c - Global Data Services

提高了可管理性

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是用于複制資料庫的資料庫負載平衡器,此外還通過資料庫間服務故障轉移功能提供高可用性。

Oracle Database 12c - Global Data Services

8

gds的應用案例

全局資料服務在各種場景中都很有用,可以提高複制資料庫的高可用性,可擴充性,性能,整體可管理性和資源使用率,無論它們在何處(在資料中心内部或跨資料中心)。

下圖描繪了在gds配置中在本地和遠端的複制資料庫上運作的電子商務應用的示例配置。 訂單輸入服務在主資料庫上運作。 報告服務在兩個複制資料庫之間進行負載平衡。

Oracle Database 12c - Global Data Services
Oracle Database 12c - Global Data Services

跨複制資料庫的負載平衡

此用例描述了gds的連接配接時間和運作時負載均衡功能。 在這種情況下,用戶端連接配接在連接配接時被負載平衡。 并且,工作負載請求也在運作時進行負載平衡。

下圖描述了gds配置中的本地和遠端複制資料庫。 訂單輸入服務在主/主資料庫上運作。 報告服務在兩個複制資料庫上運作。 用戶端連接配接在運作reporting service的standby / replica資料庫之間進行負載平衡。

Oracle Database 12c - Global Data Services

gds可以在區域内和區域之間的複制資料庫上執行負載平衡。 它考慮了資料庫負載度量,區域親和性,網絡延遲和負載平衡目标。 客戶可以通過使用帶有active data guard和oracle goldengate的gds來最大化性能并實作高效的資源使用率。

Oracle Database 12c - Global Data Services

資料庫間全局服務故障轉移

下圖顯示了gds如何為在複制的資料庫上運作的reporting service提供容錯的示例。複制資料庫故障後,gds可以将報告服務故障轉移到另一個可用資料庫(在本示例中為主/主伺服器),然後與在本地複制資料庫上運作的報告服務進行負載平衡。沒有gds,沒有一種智能和自動的方式,在oracle goldengate的多主機之間的active data guard甚至讀寫服務的一組複制資料庫之間提供隻讀資料庫服務的高可用性,進而導緻計劃外停機時間的應用。

gds在跨資料庫執行服務故障轉移時考慮到配置的全局服務放置政策。客戶可以通過在active data guard和oracle goldengate上啟用gds來最大限度地提高其資料庫服務的可用性。如圖所示,全局服務故障轉移功能不限于一個資料中心。它可以發生在位于不同區域的資料中心中的複制資料庫。

Oracle Database 12c - Global Data Services

9

總結

全局資料服務(gds)是oracle database 12c的一個整體自動化工作負載管理功能,它為一組複制資料庫提供工作負載路由,負載平衡和資料庫間服務故障轉移,基于複制滞後的路由,基于角色的全局服務和集中式工作負載管理 其全局分布或位于同一資料中心内。 客戶現在可以使用gds實作這些優勢,而無需與多點解決方案或本地生産的産品內建。 oracle database 12c gds為在複制資料庫上運作的應用程式工作負載提供更好的硬體/軟體使用率,更好的性能,可擴充性和可用性。