部署 PostgreSQL 数据库

PostgreSQL 是一个开放源对象关系数据库管理系统。它具有高度可扩展性、高度可扩展性,并且具有多种功能。PostgreSQL 支持跨多个数据中心的数据复制。

注意:

Oracle Cloud Infrastructure (OCI) 在 OCI 中提供完全托管的 PostgreSQL 服务。您可以在此处找到更多信息:使用 OCI Database with PostgreSQL 充分体验 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

    站点到站点 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、内部部署网络或其他云提供商中的网络)的专用网络流量提供路径。

    此体系结构显示了专用子网的可选动态路由网关 (Dynamic Routing Gateway, DRG)。

  • Internet 网关

    互联网网关允许 VCN 中的公共子网与公共互联网之间的通信。

  • 网络地址转换 (network address translation, NAT) 网关

    NAT 网关允许 VCN 中的专用资源访问互联网上的主机,同时不会向传入的互联网连接公开这些资源。

  • 堡垒服务

    Oracle Cloud Infrastructure 基础功能提供对不具有公共端点并且需要严格的资源访问控制(例如裸金属和虚拟机、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Container Engine for Kubernetes (OKE) 以及任何其他允许安全 Shell 协议 (Secure Shell Protocol, SSH) 访问的资源的受限时间限制的安全访问。通过 Oracle Cloud Infrastructure 基础服务,您可以在不部署和维护跳转主机的情况下启用对专用主机的访问。此外,通过基于身份的权限以及集中、审计和有时限的 SSH 会话,可以改善安全状况。Oracle Cloud Infrastructure 堡垒消除了公共 IP 对堡垒访问的需求,在提供远程访问时消除了麻烦和潜在攻击面。

  • 路由表

    虚拟路由表包含将流量从子网路由到 VCN 之外的目的地(通常通过网关)的规则。

  • 安全列表

    对于每个子网,可以创建安全规则,以指定必须允许进出子网的源、目标和流量类型。

    此体系结构为 TCP 端口 5432 添加入站规则。PostgreSQL 服务器监听 TCP 端口 5432。

  • 块存储卷

    通过块存储卷,您可以创建、附加、连接和移动存储卷,并更改卷性能,从而满足您的存储、性能和应用要求。将卷连接到实例后,您可以像常规硬盘驱动器那样使用该卷。您还可以断开卷并将其附加到其他实例而不会丢失数据。

  • PostgreSQL

    PostgreSQL 是一个开源的关系数据库管理系统 (RDBMS),具有高度可扩展性和高度可扩展性。它支持 SQL(关系)和 JSON(非关系)查询。

建议

您的要求可能与此处描述的体系结构不同。使用以下建议案作为起点。

  • 计算形状

    此体系结构使用带有 VM.Standard.E4 的 Oracle Linux 9 OS 映像。弹性配置。如果应用程序的资源需求不同,您可以选择其他配置。

  • VCN

    创建 VCN 时,根据计划附加到 VCN 中子网的资源数确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。

    选择不与内部部署网络重叠的地址范围,以便可以根据需要在 VCN 与内部部署网络之间设置连接。

    创建 VCN 后,可以更改、添加和删除其 CIDR 块。

    设计子网时,请考虑您的功能和安全要求。将同一层或角色中的所有计算实例附加到同一子网。

    使用区域子网。

考虑事项

  • 可扩展性

    此体系结构在一个故障域中部署 PostgreSQL 主节点,在其他两个故障域中部署备用节点。

    可以通过更改每个计算节点的 VM 形状来垂直缩放 PostgreSQL 集群。使用核心计数较高的配置还会增加分配给计算实例和网络带宽的内存。

  • 应用程序可用性

    故障域提供了单个可用性域中的最佳弹性。此体系结构使用另一种高可用性方法:在多个故障域中部署执行相同任务的计算实例。此设计通过引入冗余来删除单点故障。

    部署体系结构后,可以使用 SSH 工具(如 PuTTY 或 Git Bash)连接到 PostgreSQL 节点的公共 IP 地址。可以对 PostgreSQL 数据库上的 DDL 和 DML 操作使用 psql。可以使用 pgAdmin 工具执行管理操作。

  • 成本

    根据数据库所需的核心、内存和网络带宽选择虚拟机 (VM) 配置。您可以从单核配置开始,如果需要数据库节点的性能、内存或网络带宽增加,则可以稍后更改 VM 配置。

更改日志

此日志列出了重大更改:

确认

  • Author: Lukasz Feldman
  • Contributor: Wei Han