
我們正在尋找 mysql 叢集的替代品 - Oracle 或 pgsql。我閱讀了有關Oracle 11資料庫系統中HA的整個文檔,但我確實無法充分理解它。我所理解的是RAC正在做HA。背後是否有類似 mysql-proxy 的代理?或者叢集正在使用一些類似心跳的軟體來更改IP位址?或者應用程式在連接字串中必須有另一個目的地,以防主目的地發生故障?我需要這個,以便我評估重新編碼核心應用程式需要付出多少努力。
答案1
Oracle RAC 的工作原理有點複雜,簡單來說如下:
Oracle RAC 由 Oracle 資料庫節點組成。每個節點都有一個本機監聽器,整個叢集有一個或多個SCAN(單一客戶端存取名稱)監聽器。每個偵聽器都有自己的虛擬 IP 位址。如果主機死亡,則死亡主機的偵聽器位址將被其他主機佔用。主機應該有一個專用的互連連接口,心跳在該介面上流動並完成伺服器之間的同步。
用戶端只需連接到 SCAN 偵聽器,而該偵聽器的 IP 位址是恆定的(如果叢集有更多 SCAN,那麼 DNS 應該將名稱解析為這些位址,使用戶端使用循環方式連接到 SCAN) 。當客戶端連線時,叢集會將客戶端重新導向到最佳的本機偵聽器,但為此,客戶端不需要任何進一步的設定。
Oracle 擁有相當完善的有關 RAC 的文檔,但實施和管理文檔並不簡單(至少可以這麼說)。如果您想使用 RAC,您應該聽取 pfo 的建議並聘請專業人員。
答案2
RAC就是RAC/它是一個黑盒子。所有 HA 事務都在 RAC 和驅動程式層級處理。只有當 Oracle 不是 MySql 時才需要應用程式重新編碼。