注意:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于云环境的值。
使用 PostgreSQL 将数据从内部部署 PostgreSQL 数据库迁移到 OCI 数据库
简介
PostgreSQL 是一项完全托管的服务,可以节省您在路由任务(例如打补丁、备份和存储管理)上的时间。我们的特殊功能是数据库优化的存储架构,它将 SQL 事务处理引擎与存储层分离,并提高系统的弹性和性能,其设计成本比 Amazon Aurora 低 60%,其性能比开源 PostgreSQL 部署高出约三倍。此外,它还与开源 PostgreSQL 完全兼容。

我们可以使用 PostgreSQL 进行分析处理。PostgreSQL 基于 HTAP (混合事务/分析处理)体系结构,因此它可以处理联机分析处理 (Online Analytical Processing,OLAP) 和联机事务处理 (Online Transaction Processing,OLTP)。我们可以使用 PostgreSQL 执行创建 - 读取 - 更新 - 删除 (CRUD) 操作。
空间数据可以与空间数据库扩展器 PostGIS 一起使用。PostgreSQL 还支持在 SQL 和空间数据分析中对地理对象运行位置查询。PostGIS 符合高标准要求,提供数百种处理各种格式几何数据的功能,并且可以与量子地理信息系统 (Quantum Geographic Information System,QGIS) 和 GeoServer 一起使用,以便更轻松地处理地理数据。
在本教程中,我们将讨论如何使用 PostgreSQL 将数据从内部部署 PostgreSQL 数据库迁移到 Oracle Cloud Infrastructure (OCI) 数据库。PostgreSQL 主版本由版本号的前两个数字组表示,例如 14.9。我们将通过 pg_dump 从本地部署 PostgreSQL 的一个主要版本迁移数据,并将其重新加载到另一个 OCI 中,从而迁移数据库。由于 PostgreSQL 版本为 14.9 的 OCI 数据库现已可用,因此您可以使用 PostgreSQL 测试将数据从内部部署 PostgreSQL 迁移到 OCI 数据库。
目标
- 使用 PostgreSQL 将数据从内部部署 PostgreSQL 数据库迁移到 OCI 数据库。
先决条件
-
Oracle Cloud 账户。
-
具有专用子网的 VCN。
-
堡垒主机(计算映像)/堡垒即服务。
-
预配 OCI PostgreSQL 数据库实例。
注意事项
-
迁移过程将在数据库系统上造成停机,因此应相应地进行规划。
-
建议在尝试升级之前对数据库进行完整的独立备份。
-
它仅支持专用端点,无法为 OCI PostgreSQL 创建公共 IP。
源环境
-
数据库名称:
dvdrental -
版本:
PostgreSQL 13.13
目标环境
-
数据库名称:
dvdrental_oci -
版本:
PostgreSQL 14.9
任务 1:在 OCI 上创建 PostgreSQL 数据库
-
转到 OCI 控制台,导航到数据库和 PostgreSQL 。

-
单击创建数据库系统以创建 PostgreSQL 数据库系统。

-
在选择创建类型中,单击创建新数据库系统。

它仅支持 PostgreSQL 版本 14 及更高版本。

-
我们将创建单个节点集群,但可以添加更多节点,因此输入节点计数为
1,支持的性能层为300k IOPS。在这种情况下,第一个节点将充当主节点,其余节点将充当副本节点或辅助节点。
-
根据用法更改 Shape 和 RAM 。

它支持专用端点,无法为 PostgreSQL OCI 创建公共 IP 地址。

预配后,我们可以在与专用端点关联的一般信息中查看专用端点和 FQDN 的详细信息。

如前所述,它仅创建专用端点,因此您无法直接连接到 PostgreSQL。如果需要从本地 pgAdmin 客户端进行连接,则必须为此端点的端口
5432(可选)创建堡垒会话并从本地 pgAdmin 进行连接。
为了连接到 OCI 上的 PostgreSQL 数据库,我们可以使用计算实例。

-
创建名为
dvdrental_oci的数据库。
任务 2:在目标 OCI PostgreSQL 数据库系统上传输对象和数据
在此任务中,我们使用 pgAdmin 转储实用程序从内部部署 PostgreSQL 数据库导出转储,源数据库版本为 13.13。

我们将从内部部署 PostgreSQL 数据库导出转储。

注:如果您的目标数据库将是 Autonomous Data Warehouse、Oracle Database Cloud Service 或 Oracle Database,您甚至可以使用 OCI GoldenGate 进行初始加载,并将内部部署 PostgreSQL 数据库迁移到 OCI Database(使用 OCI GoldenGate 进行 PostgreSQL(联机))。
完成后,移动到目标端并开始导入。开始导入之前,请使用以下命令在 OCI 上授予权限。
GRANT ALL PRIVILAGES ON DATABASE dvdrental_oci to postgres;

我们需要将从内部部署 PostgreSQL 数据库复制的数据加载到此 OCI 数据库中。

任务 3:验证传输的数据库对象和数据
导入后,在目标 OCI PostgreSQL 数据库系统上验证传输的数据库对象和数据,以确保迁移成功并且没有问题或差异。


相关链接
确认
- 作者 - Aditya Kumar Srivastawa(首席云架构师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Migrate Data from On-premises PostgreSQL Database to OCI Database with PostgreSQL
F91904-01
January 2024
Copyright © 2024, Oracle and/or its affiliates.