注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
在 Oracle Cloud Infrastructure Compute 实例上部署 PostgreSQL 集群
简介
PostgreSQL 是一个开源对象关系数据库管理系统。它具有高度可扩展性,高度可扩展性,并且具有许多功能。PostgreSQL 支持跨多个数据中心的数据复制。
本教程展示了 Oracle Cloud Infrastructure (OCI) 计算实例上 PostgreSQL 集群的典型三节点部署。在本教程中,服务器配置在主配置和备用配置中,并使用流复制。
您可以在此处找到自动化说明: terraform-oci-arch-postgresql 。
注:它将自动安装
postgis34
和pgvector
。
架构图
目标
-
部署三节点 PostgreSQL 集群。
-
修改代码以更好地满足您的需求。
先决条件
-
在 OCI 租户中管理以下资源的权限:虚拟云网络 (Virtual Cloud Networks,VCN)、Internet 网关、路由表、安全列表、子网和实例。
-
创建以下资源:
- 1 VCN、
- 1 子网,
- 1 Internet 网关,
- 1 路线规则和
- 3 个计算实例(1 个主 PostgreSQL 实例和 2 个 PostgreSQL 的备用实例)。
任务 1:使用 OCI 资源管理器部署 Terraform 代码
部署可以通过两种方式完成,即使用 terraform 命令行界面 (CLI) 或 OCI 资源管理器。在本教程中,我们将使用 OCI 资源管理器。
有关 terraform CLI,请参见此处的系统信息库文档: terraform-oci-arch-postgresql 。
-
单击以下图像以启动将部署资源的 OCI 资源管理器流程。
-
如果您尚未登录,请输入租户和用户身份证明,查看并接受条款和条件,选择希望堆栈所在的区域和区间,然后单击下一步,以转到配置变量的下一步。
-
在配置变量中,输入以下信息以配置变量。
- 区间:选择要部署资源的区间。
- 主计算实例的可用性域 PostgreSQL:为主计算实例选择可用性域。
- PostgreSQL 版本:您可以选择版本 9.6、10、11、12 或 13。
- PostgreSQL 口令:设置口令以访问 PostgreSQL。
- 部署第一个 PostgreSQL HotStandby:如果要部署第一个备用数据库,请选择此项。
- 部署第二个 PostgreSQL HotStandby:如果要部署第二个备用数据库,请选择此项。
- 在专用子网中创建:如果要在专用子网中创建实例,请选择此项。
注:
- 通过部署第一个和第二个 PostgreSQL HotStandby,可以部署一个、两个或三个节点。
- 如果选择在专用子网中创建,将创建 OCI 堡垒服务以允许访问。
-
单击显示高级选项以输入其他可配置变量信息。
- 网络可选配置:这允许您指定 VCN 和子网 CIDR 以及是否创建动态路由网关 (Dynamic Routing Gateway,DRG)。
- 计算、存储和备份可选配置:这样,您可以添加公共 SSH 密钥来访问 PostgreSQL 实例和配置备份。
- PostgreSQL 主可选配置:为弹性配置指定 PostgreSQL 主实例容错域、配置、CPU 和内存。
- PostgreSQL HotStandby1 可选配置:为弹性配置指定 PostgreSQL 第一个备用实例可用性域、容错域、配置、CPU 和内存。
- PostgreSQL HotStandby2 可选配置:为弹性配置指定 PostgreSQL 第二个备用实例可用性域、容错域、配置、CPU 和内存。
-
单击下一步以查看信息。
注:
- 如果要先运行计划,请取消选择运行应用。
- 如果选择运行应用,它将触发 terraform 应用命令,并将自动开始预配资源。
-
单击创建。
任务 2:销毁部署
要销毁资源,只需转到 Stack Details(堆栈详细信息)页面并单击 Destroy(销毁)。
了解如何安装和配置 PostgreSQL
如果需要修改 PostgreSQL 的工作方式,此信息非常有用。
它将帮助您了解:
-
安装和配置的确切位置。
-
脚本的运行顺序。
-
简要概述每个脚本的作用。
注:本文不介绍如何自定义自动化。根据更改,可能需要在多个 terraform 文件中进行修改。
-
本教程中使用的重要文件包括:
remote.tf
:在每个 PostgreSQL 实例上部署脚本的 Terraform 文件。scripts/postgresql_install_binaries.sh
:安装 PostgreSQL 服务器,一些扩展并配置防火墙。scripts/postgresql_master_initdb.sh
:初始化数据库。scripts/postgresql_master_setup.sh
:配置 PostgreSQL standby1 的副本。scripts/postgresql_master_setup2.sh
:配置 PostgreSQL standby2 的副本。scripts/postgresql_standby_setup.sh
:对副本的其他配置,如防火墙、最大连接数、编辑replica.conf
。
-
脚本按以下顺序运行:
scripts/postgresql_install_binaries.sh
:在 PostgreSQL 主实例上运行。scripts/postgresql_master_initdb.sh
在 PostgreSQL 主实例上运行。scripts/postgresql_install_binaries.sh
在 PostgreSQL standby1 实例上运行。scripts/postgresql_install_binaries.sh
在 PostgreSQL standby2 实例上运行。scripts/postgresql_master_setup.sh
在 PostgreSQL 主实例上运行。scripts/postgresql_master_setup2.sh
在 PostgreSQL 主实例上运行。scripts/postgresql_standby_setup.sh
在 PostgreSQL standby1 实例上运行。scripts/postgresql_standby_setup.sh
在 PostgreSQL standby2 实例上运行。
确认
- 作者 — Gabriel Feodorov(高级云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Deploy a PostgreSQL Cluster on Oracle Cloud Infrastructure Compute Instances
G25664-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.