本主題說明執行 9.0.0 版或更新版本之應用裝置的資料庫容錯移轉功能。對於這些應用裝置,容錯移轉完全自動執行,除非服務提供者應用裝置非預期關閉,在這種情況下仍可執行手動程序。

備註: 本主題僅適用於執行 9.0.0 版或更新版本的應用裝置。如需舊版應用裝置的相關資訊,請參閱 資料庫容錯移轉 - 舊版應用裝置

自動化容錯移轉

自動化容錯移轉功能包括下列項目。
  • 單一資料來源連線 - 所有應用裝置現在都使用單一資料來源連線,且透過新的 pgbouncer 服務來代理連線。Pgbouncer 是連線共用器,可維護基礎 postgres 資料庫的連線,並提供單一連線點供應用裝置服務使用。此服務也處理所有容錯移轉和主機移轉,並自動更新以指向新的主控資料庫,以便在主機之間順暢轉換。
  • 在應用裝置關閉或重新啟動時控制主要資料庫的切換 - 每次由客體關閉或重新啟動目前的資料庫主機時,以受控制的方式將主要角色移轉至 HA 配對中的另一個應用裝置。這只稍微中斷應用裝置的運作,主要會影響透過 Blast (Web) 入口網站建立的桌面連線。透過 Horizon Client 建立的桌面連線不受影響。這也會造成暫時無法使用 horizonadmin,在切換期間要求桌面連線的使用者可能會遇到錯誤,而沒有可用的桌面 (但稍後重試應可讓其連線至桌面)。
  • 租用戶應用裝置非預期故障時自動容錯移轉資料庫主機 - 現在會自動偵測主機故障,接著要求服務提供者應用裝置以驗證應用裝置是否實際關閉。延遲三分鐘後,系統就會起始容錯移轉程序。相較於以往的容錯移轉程序,這個新的容錯移轉程序干擾較少,隨後會讓 Slony 叢集處於正常複寫狀態 - 容錯移轉後不需要重新初始化 Slony。
下述服務支援這些功能。
服務 說明 記錄位置 附註
Pgbouncer 連線共用器,代理平台服務與 postgres 之間的資料庫連線。 /var/log/pgbouncer/
  • 現在,使用 psql 命令連線至 postgres 時,依預設會通過 pgbouncer,無論您使用哪一個應用裝置,如此皆會連線至主要資料庫。若要連線至特定的資料庫執行個體,請在 psql 中使用 -h 和 -p 旗標。您也必須指定連接埠 6432,才能直接連線至 postgres。例如:
    psql -U admin -h ‹Appliance_IP› -p 6432 fdb
  • 您可以檢查 /etc/pgbouncer/pgbouncer.ini 中的 pgbouncer 組態,以確認其指向正確的應用裝置。檔案頂端的連線字串應指向目前的 Slony 主機。如果不是,則在多數情況下,重新啟動應用裝置將能修正此問題。
Dbmonitor 具有下列功能的監控服務:
  • 偵測主機故障並起始新的容錯移轉程序。
  • 偵測受控制的轉換或重新訂閱所造成的 Slony 主節點變更,並相應地以新的主要位址更新 pgbouncer。
/var/log/dbmonitor/
Switchover 在關機時執行指令碼,以執行切換動作。 /var/log/desktone/slony-services
Resubscribe 在啟動時執行指令碼,以執行重新訂閱動作。 /var/log/desktone/slony-services

手動容錯移轉服務提供者應用裝置

如果服務提供者應用裝置非預期關機,您可以在其他服務提供者應用裝置上執行下方步驟,以進行手動容錯移轉。
  1. 以 root 身分執行 failover-slony-master 指令碼 (位於 /usr/local/desktone/scripts/):
    failover-slony-master <database type> '<database password>'
    其中 <database type> 為 fdb、edb 或 avdb。
  2. 確認 pgbouncer.ini 檔案指向目前應用裝置的前端 IP 位址:
    /usr/local/desktone/scripts# grep '<IP address>' /etc/pgbouncer/pgbouncer.ini
  3. 重新載入 pgbouncer 服務:
    service pgbouncer reload
  4. 執行 slony-status 以確認主要狀態和複寫:
    /usr/local/desktone/scripts# slony-status <org #>