Oracle
Oracle 如何實現高可用性?
我們正在尋找一些替代我們的 mysql 集群 - Oracle 或 pgsql。我閱讀了有關 Oracle 11 數據庫系統中 HA 的整個文件,但我真的無法完全理解它。我所理解的是,RAC 正在做 HA。後面有沒有像 mysql-proxy 這樣的代理?或者集群正在使用類似心跳的軟體更改 IP 地址?或者應用程序必須在連接字元串中有另一個目的地,以防主要目的地發生故障?我需要這個,所以我會評估重新編碼核心應用程序需要多少努力。
Oracle RAC 的工作原理有點複雜,但簡單來說如下:
Oracle RAC 由 Oracle 數據庫節點組成。每個節點都有一個本地監聽器,整個集群有一個或多個 SCAN(Single Client Access Name)監聽器。每個偵聽器都有自己的虛擬 IP 地址。如果主機死了,死主機的偵聽器地址將被其他主機佔用。主機應該有一個專用的互連介面,心跳流和伺服器之間的同步在該介面上完成。
客戶端只需要連接到 SCAN 偵聽器,並且其 IP 地址是恆定的(如果集群有更多 SCAN,則 DNS 應將名稱解析為這些地址,使客戶端使用循環連接到 SCAN) . 當客戶端連接時,集群會將客戶端重定向到最佳本地偵聽器,但為此,客戶端不需要任何進一步的設置。
Oracle 有關於 RAC 的相當好的文件,但是實施和管理一個文件並不簡單(至少可以這麼說)。如果您想使用 RAC,您應該聽取 pfo 的建議並聘請專業人士。