注意:

使用 OCI GoldenGate 将内部部署 PostgreSQL 数据库迁移到 OCI 数据库 PostgreSQL

简介

Oracle Cloud Infrastructure Database with PostgreSQL (OCI Database with PostgreSQL) 是一项全托管式服务,可在创建或删除数据库表时自动扩展存储。这样可以简化管理并优化存储成本。传输中数据和静态数据都进行加密。

OCI GoldenGate 支持逻辑联机迁移,支持使用 PostgreSQL 服务数据库的 OCI 数据库实现无缝转换和几乎零停机迁移。此功能支持使用 PostgreSQL 服务版本 14、15 个数据库和未来发行版将 VM 上的内部部署 PostgreSQL 数据库迁移到 OCI 数据库。

本教程概述了 OCI GoldenGate 如何帮助将 VM 版本 14 上的内部部署 PostgreSQL 数据库迁移到具有 PostgreSQL 服务数据库版本 14 的 OCI 数据库。初始加载使用 pg_dump (pg_dumpall)/pg_restore 备份实用程序执行。这将创建源数据库的备份或快照,该备份或快照将在目标系统上还原,然后进行 OCI GoldenGate 更改数据捕获 (CDC) 复制以同步源(内部部署 VM PostgreSQL 数据库)和目标(使用 PostgreSQL 服务的 OCI 数据库)。

下图显示了使用 OCI GoldenGate 将 VM 上的内部部署 PostgreSQL 数据库迁移到 OCI 数据库的体系结构。

图中显示了体系结构

目标

先决条件

注:这些先决条件适用于 VM(源)上的内部部署 PostgreSQL 数据库。

任务 1:准备源数据库环境

  1. 运行以下查询以创建复制用户,在 OCI 控制台中创建连接时应使用此用户。

    create user ggadmin with password ‘<<password>>’;
    GRANT ALL PRIVILEGES ON DATABASE campaign TO ggadmin;
    alter user ggadmin replication;
    alter user ggadmin with superuser;
    
  2. 应更改以下参数,并重新启动数据库系统,以便修改 wal_level

    ALTER SYSTEM SET wal_level = logical;
    ALTER SYSTEM SET track_commit_timestamp = on;
    

任务 2:预配 OCI GoldenGate 和配置连接

  1. 登录到 OCI 控制台并为 PostgreSQL 数据库创建 OCI GoldenGate 部署。

    图中显示了部署的创建

    图中显示了部署的创建

    图中显示了部署的创建

    图中显示了部署的创建

    图中显示了部署的创建

  2. 为 OCI PostgreSQL 创建 OCI GoldenGate 连接。

    1. 输入源连接详细信息,然后单击创建

      图中显示了 SourceConnections 的创建

      图中显示了 SourceConnections 的创建

    2. 输入目标连接详细信息,然后单击创建

      图中显示了 TargetConnections 的创建

      图中显示了 TargetConnections 的创建

    注:如果为 VM 创建了连接,SSL 协议应为普通,对于具有 PostgreSQL 服务的 OCI 数据库,SSL 协议应为必需

  3. 单击创建以创建连接。

任务 3:设置源数据库复制

  1. 在 OCI GoldenGate 中创建提取

    图中显示了方案 trandata 的创建

    注:在源数据库中为所有合格方案添加方案 trandata,然后单击提交

    图中显示了创建提取

    图中显示了创建提取

    图中显示了提取参数 file1 的创建

    注:单击 CREATE ,不要单击 CREATE and RUN

  2. 在源数据库中创建一个临时复制插槽,该插槽将用于为提取进程和定位 PostgreSQL 快照创建起点。这可以使用 CREATE_REPLICATION_SLOT 命令完成。按照以下步骤配置临时复制插槽:

    1. 使用 psql 作为具有复制角色的用户(例如 postgresggadmin 用户)登录到 PostgreSQL 数据库。

    2. 使用 replication=database 选项。

      psql "dbname=pgsource replication=database user=postgres" 
      CREATE_REPLICATION_SLOT tslot TEMPORARY LOGICAL test_decoding EXPORT_SNAPSHOT;
      slot_name | consistent_point | snapshot_name | output_plugin
      ----------+------------------+---------------+--------------------- 
          tslot | 1/4232A6B0 | 00000007-00001142-1 | test_decoding 
      
    3. 请注意 snapshot_nameconsistent_point 详细信息。

      注:

      • consistent_point 应用于定位 OCI GoldenGate 提取并启动提取以捕获 CDC 事务处理。
      • snapshot_name 应用于使用 pg_dumppg_restore 从源数据库到目标数据库的初始加载。
  3. 将 OCI Goldengate Extract 定位到 consistent_point 日志序号 (LSN)。

    创建的 CDC 提取将处于停止状态。

    图中显示了提取定位的创建

    操作下,单击 ... 图标并选择更改

    图中显示了提取定位的创建

    将任务 3.2 中捕获的 LSN 的位置更改为 consistent_point

    图中显示了提取定位的创建

  4. 单击提交并启动提取流程。

    提取将处于运行状态,并将从更改的位置开始 CDC 捕获。

    图中显示了提取定位的创建

任务 4:在源数据库和目标数据库上运行备份和还原

  1. 运行以下命令来备份源主数据库。

    nohup /u01/pgsql-14/bin/pg_dump -h <<Sourceip>> -p 5432 -U <<superuser/ggadmin user>> –snapshot=00000007-00001142-1 -F c -b -v -f latestdump.db pgsource &
    
  2. 运行以下命令以将转储还原到目标数据库。

    nohup /u01/pgsql-14/bin/pg_restore -h <<Targetip>> -p 5432 -U admin -d pgtarget -v latestdump.db &
    

任务 5:设置目标数据库复制

  1. 在 OCI GoldenGate 目标数据库上的任何可用方案中创建检查点表,然后单击提交

    图中显示了检查点表的创建

  2. 创建具有目标数据库连接的复制进程以将 CDC 数据应用于目标数据库。

    图中显示了创建副本

    图中显示了创建副本

    图中显示了创建副本

    图中显示了复制参数文件的创建

  3. 单击 submit 并启动复制。允许其同步。

    图中显示了创建副本

任务 6:执行实际迁移

使用 PostgreSQL 服务从本地 VM PostgreSQL 数据库切换到 OCI 数据库。

任务 7:验证迁移

使用 PostgreSQL 验证 OCI 数据库中目标数据库系统上传输的数据库对象和数据,以确保迁移成功,并且不存在问题或差异。

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心