部署 PostgreSQL 資料庫

PostgreSQL 是一個開源物件關聯式資料庫管理系統。這是高度可擴充、高度可擴展且有許多功能。PostgreSQL 支援跨多個資料中心進行資料複製。

附註:

Oracle Cloud Infrastructure (OCI) 在 OCI 中提供完全託管的 PostgreSQL 服務。您可以在此處找到更多資訊:使用 PostgreSQL 的 OCI 資料庫體驗最佳的 PostgreSQL

架構

此參照架構在 Oracle Cloud Infrastructure Compute 執行處理上顯示 PostgreSQL 叢集的一般三節點部署。在此架構中,伺服器會在主要和待命組態中設定,並且使用以檔案為基礎之日誌出貨的串流複製。

下圖說明此參考架構。

postgre-oci.png 說明如下
postgre-oci.png 圖解說明

postgre-oci-oracle.zip

架構包含下列元件:

  • 區域

    Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。

  • 可用性網域

    可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎架構,例如電源、冷卻或內部可用性網域網路。因此,一個可用性網域的失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯域是一組可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源與硬體的容錯域。在多個容錯域之間分配資源時,您的應用程式可以容許容錯容錯域內的實體伺服器故障、系統維護和電源故障。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。VCN 就像傳統資料中心網路一樣,可讓您完全控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,供您在建立 VCN 之後變更。您可以將 VCN 區隔為子網路,子網路範圍可為區域或可用性網域。每個子網路均包含一個未與 VCN 中其他子網路重疊的連續位址範圍。您可以在建立子網路之後變更子網路的大小。子網路可以是公用或專用。

    此架構使用一個公用子網路代管執行 PostgreSQL 的三個運算執行處理。如果您的架構需要專用子網路,您可以選擇使用專用子網路。

  • 網站至網站 VPN

    Oracle Cloud Infrastructure 中企業內部部署網路與 VCN 之間,提供 IPSec VPN 連線。IPSec 協定套件會先加密 IP 流量,再將封包從來源傳輸到目的地,並在封包抵達時解密流量。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 可讓您輕鬆地建立資料中心與 Oracle Cloud Infrastructure 之間的專屬專用連線。與網際網路連線相比,FastConnect 提供更高的頻寬選項和更可靠的網路體驗。

  • 動態路由閘道 (DRG)

    DRG 是一個虛擬路由器,可為 VCN 與區域外部網路之間的 VCN (例如另一個 Oracle Cloud Infrastructure 區域中的 VCN、企業內部部署網路或其他雲端提供者中的網路) 之間的專用網路流量提供路徑。

    此架構顯示專用子網路的選擇性動態路由閘道 (DRG)。

  • 網際網路閘道

    網際網路閘道可允許 VCN 中公用子網路與公用網際網路之間的流量。

  • 網路位址轉譯 (NAT) 閘道

    NAT 閘道可讓 VCN 中的專用資源存取網際網路上的主機,而不會將這些資源暴露給內送網際網路連線。

  • 防禦主機服務

    Oracle Cloud Infrastructure 防禦主機針對沒有公用端點且需要嚴格資源存取控制的資源(例如裸機和虛擬機器、Oracle MySQL 資料庫服務、自治式異動處理 (ATP)、Oracle Container Engine for Kubernetes (OKE) 以及允許安全 Shell 協定 (SSH) 存取的任何其他資源,提供限制時間的安全存取。您可以使用 Oracle Cloud Infrastructure 防禦主機啟用專用主機的存取,而不需部署和維護跳躍點主機。此外,您還可以透過識別型權限和集中式、稽核及時間限制 SSH 階段作業來改善安全態勢。Oracle Cloud Infrastructure 防禦主機會移除防禦主機存取的公用 IP 需求,以提供遠端存取時不需相鄰和潛在的攻擊面板。

  • 路由表格

    虛擬路由表包含規則,用於將流量從子網路遞送至 VCN 以外的目的地 (通常是透過閘道)。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定子網路中必須允許的來源、目的地以及流量類型。

    此架構會新增 TCP 連接埠 5432 的輸入規則。PostgreSQL 伺服器會監聽 TCP 連接埠 5432。

  • 區塊磁碟區

    透過區塊儲存磁碟區,您可以建立、連附、連線與移動儲存磁碟區,以及變更磁碟區效能,以滿足您的儲存、效能和應用程式需求。將磁碟區連附並連線至執行處理之後,您便可以像使用一般硬碟一樣使用該磁碟區。您也可以中斷磁碟區連線,並在不遺失資料的情況下將它連附至另一個執行處理。

  • PostgreSQL

    PostgreSQL 是具有高度可擴充性和高擴展性的開放原始碼關聯式資料庫管理系統 (RDBMS)。它支援 SQL (關聯式) 和 JSON (非關聯式) 查詢。

推薦

您的需求可能會與此處描述的架構不同。使用下列建議作為起點。

  • 運算資源配置

    此架構使用 Oracle Linux 9 作業系統映像檔搭配 VM.Standard.E4。彈性資源配置。如果應用程式的資源需求不同,您可以選擇不同的資源配置。

  • VCN

    建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,判斷所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    選取未與內部部署網路重疊的位址範圍,以便您可以視需要設定 VCN 與內部部署網路之間的連線。

    建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    設計子網路時,請考量您的功能和安全需求。將相同層或角色內的所有運算執行處理連附至相同的子網路。

    使用區域子網路。

考量

  • 擴展性

    此架構會部署一個容錯域內的 PostgreSQL 主要節點,以及其他兩個容錯域內的待命節點。

    您可以變更每個運算節點的 VM 資源配置,以垂直方式擴展 PostgreSQL 叢集。使用核心數目較高的資源配置,也會增加配置給運算執行處理和網路頻寬的記憶體。

  • 應用程式可用性

    容錯域可在單一可用性網域內提供最佳復原能力。此架構使用另一種高可用性的方法:部署跨多個容錯域執行相同作業的運算執行處理。此設計會透過簡介冗餘來移除單一失敗點。

    建置架構之後,您可以使用 PuTTY 或 Git Bash 之類的 SSH 工具連線至 PostgreSQL 節點的公用 IP 位址。您可以在 PostgreSQL 資料庫上針對 DDL 和 DML 作業使用 psql。您可以使用 pgAdmin 工具來執行管理作業。

  • 成本

    根據資料庫所需的核心、記憶體以及網路頻寬,選取一個虛擬機器 (VM) 資源配置。您可以從一個核心資源配置開始,如果您需要更多的資料庫節點效能、記憶體或網路頻寬,可以稍後再變更 VM 資源配置。

變更日誌

此日誌會列出重大變更:

確認

  • Author: Lukasz Feldman
  • Contributor: Wei Han