将 Oracle 数据库迁移到 Cloud SQL for PostgreSQL

本页介绍了如何将 Oracle 数据库转换为 PostgreSQL 语法,以及如何使用 Database Migration Service 将数据迁移到 Cloud SQL for PostgreSQL。

迁移过程涉及以下任务:

  1. 配置源数据库以进行迁移连接,并准备将数据转换为 PostgreSQL。

  2. 创建 Cloud SQL for PostgreSQL 目标实例。

  3. 使用 Database Migration Service 转换工作区将 Oracle 架构和其他对象转换为 PostgreSQL 语法。

  4. 在 Database Migration Service 中创建并运行迁移作业。

  5. 使用 Database Migration Service 可观测性功能监控迁移作业进度。

  6. 在数据完全迁移后提升迁移作业。

费用

在本文档中,您将使用的以下收费组件: Google Cloud:

如需根据您的预计使用量来估算费用,请使用 价格计算器

准备工作

  1. 验证此迁移路径是否可以完全支持您的场景。 请参阅以下页面:
    • _场景概览_ 页面上的支持的来源和目标位置列出了所有受支持的来源和目标位置版本。
    • 已知限制介绍了 支持的数据类型、数据库大小和其他限制。
    • 网络概览 介绍了可用的网络连接 解决方案。

      如需迁移数据,Database Migration Service 需要与来源实例和目标实例建立网络 连接。根据您的架构,您可能需要进行额外的准备工作,以方便网络连接。

  2. _对于一次性迁移_:请考虑迁移时间表。 一次性迁移仅执行完整转储和加载操作,而不会进行后续的变更数据捕获。我们建议您在迁移过程中停用对 您的来源数据库的写入操作,以避免数据丢失。
  3. 考虑要在哪个区域中创建目标数据库。 Database Migration Service 是一款完全区域性的产品,这意味着与迁移相关的所有实体 来源和目标位置连接配置文件、 迁移作业、目标数据库、转换工作区都必须保存在单个区域中。
  4. 在 Google Cloud 控制台的项目选择器页面上,选择或 创建 Google Cloud 项目

    转到“项目选择器”

  5. 启用 Database Migration Service、Compute Engine、Cloud Storage、 和 Cloud SQL Admin API。

    启用 API

所需角色

如需获得使用 Database Migration Service 执行异构 Oracle 迁移所需的权限,请让管理员向您授予项目的必要 IAM 角色:

如需详细了解如何授予角色,请参阅 Identity and Access Management 文档中的管理访问权限。

这些预定义角色具有使用 Database Migration Service 执行异构 Oracle 迁移所需的权限。如需查看所需的确切权限,请展开所需权限 部分:

所需权限

如需使用 Database Migration Service 执行异构 Oracle 迁移,您需要拥有以下权限:

  • datamigration.*
  • cloudaicompanion.entitlements.get

    此权限包含在 roles/datamigration.admin 角色中。这是 Gemini 增强型转换功能所必需的权限

  • cloudsql.instances.create
  • cloudsql.instances.get
  • cloudsql.instances.list
  • cloudsql.instances.update
  • cloudsql.instances.delete
  • cloudsql.operations.get
  • cloudsql.users.list
  • cloudsql.users.get
  • cloudsql.users.create
  • cloudsql.users.update
  • cloudsql.users.delete

您也可以使用 自定义角色或其他 预定义角色来获取这些权限。

第 1 步:准备源数据库

如需准备源数据以进行迁移,请按以下步骤操作:

  1. 设置源数据库连接。请执行以下操作:
    1. 可选:考虑是否要使用 SSL/TLS 证书来保护 来源网络连接。如需了解详情,请参阅 使用 TLS 保护网络连接

      Oracle 12 及更高版本支持 SSL/TLS 加密。 Database Migration Service 仅支持 TLS 加密方法。 根据您的 SSL/TLS 配置,您可能需要在源数据库上执行 额外的配置步骤。

    2. 选择并配置来源网络连接方法
  2. 配置源数据库实例。

    在此步骤中,您将创建一个专用的迁移数据库用户账号 并启用必要的复制功能。

  3. 可选: 优化日志文件配置

    访问归档的日志文件会给迁移过程带来一些延迟。您可以调整某些日志文件设置 来控制延迟影响。

  4. 创建来源连接配置文件。

    连接配置文件包含 Database Migration Service 建立与源数据库的连接所需的信息。连接 详细信息因您使用的 来源网络连接方法而异。

第 2 步:准备 Cloud SQL for PostgreSQL 目标实例

如需配置 Cloud SQL 目标实例,请执行以下步骤:

  1. 选择并配置目标网络连接方法
  2. 创建并配置 Cloud SQL for PostgreSQL 目标实例

    确保您使用足够的计算和内存资源来满足迁移 需求。如需了解详情,请参阅 迁移建议

  3. 创建目标位置连接配置文件。

    连接配置文件包含 Database Migration Service 建立与目标数据库的连接所需的信息。连接 详细信息因您使用的 目标网络连接方法而异。

第 3 步:将 Oracle 对象转换为 PostgreSQL 语法

数据库通常包含数千个对象。在单个会话中转换所有对象可能是一个具有挑战性的过程。借助转换工作区,您可以将转换过程划分为多个阶段,在这些阶段中,您可以向转换中添加新对象、修复问题,然后在目标数据库中测试这些对象。

如需转换源数据库中的对象,请执行以下操作:

  1. 创建转换工作区并运行初始转换
  2. 修复转换问题并将架构应用于目标数据库

第 4 步:创建并运行迁移作业

如需配置和运行迁移,请执行以下步骤:

  1. 可选:如果您想为迁移作业管理自己的证书,请准备必要的加密密钥。
  2. 可选:如果您想自行执行完整转储阶段, 您可以从 Oracle 源数据库导出所有数据,并将其加载 到 Database Migration Service 之外的 Cloud SQL for PostgreSQL 目标实例。

    如果您决定在迁移作业流程之外执行完整转储, 请务必记录 Database Migration Service 应开始 CDC 复制的系统更改编号 (SCN)。

  3. 创建并运行迁移作业

    在迁移期间,目标 Cloud SQL 数据库是可写的 以便在需要时应用 DML 更改。请注意,不要对数据库配置或表结构进行任何 更改,因为这可能会导致迁移过程中断或影响数据完整性。

    您可以使用 Database Migration Service 可观测性 功能监控迁移进度以及目标实例 运行状况。请参阅 迁移作业指标

第 5 步:完成迁移

当您决定将应用切换到新的 AlloyDB for PostgreSQL 实例时,请按照以下步骤完成迁移:

一次性迁移

当 Database Migration Service 完成完整转储阶段后,迁移 作业状态会更改为准备提升

  1. 可选: 验证迁移数据的完整性。
  2. 提升迁移作业

持续迁移

  1. 停止对来源数据库的所有写入操作。您可以将它们 切换为只读模式,以保留操作功能。
  2. 可选: 验证迁移数据的完整性。
  3. 提升迁移作业

后续步骤

详细了解 Cloud SQL for PostgreSQL 的 Google Cloud 功能。请参阅 Cloud SQL for PostgreSQL 的特性