将 Oracle 数据库迁移到 AlloyDB for PostgreSQL

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

迁移过程涉及以下任务:

  1. 配置源数据库以实现迁移连接,并准备好要转换为 PostgreSQL 的数据。

  2. 创建 AlloyDB 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 执行异构 SQL Server 迁移所需的权限,请让管理员向您授予项目的必需 IAM 角色:

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

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

所需权限

使用 Database Migration Service 执行异构 SQL Server 迁移需要以下权限:

  • datamigration.*
  • cloudaicompanion.entitlements.get

    roles/datamigration.admin 角色拥有此权限。对于 Gemini 增强型转化功能,这是必需的。

  • alloydb.clusters.create
  • alloydb.clusters.get
  • alloydb.clusters.list
  • alloydb.clusters.update
  • alloydb.clusters.delete
  • alloydb.instances.create
  • alloydb.instances.get
  • alloydb.instances.list
  • alloydb.instances.update
  • alloydb.instances.delete
  • alloydb.operations.get
  • alloydb.users.list
  • alloydb.users.get
  • alloydb.users.create
  • alloydb.users.update
  • alloydb.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 步:准备 AlloyDB for PostgreSQL 目标实例

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. 创建并运行迁移作业

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

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

第 5 步:完成迁移

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

一次性迁移

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

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

持续迁移

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

您现在可以清理所有 Database Migration Service 实体,例如连接配置文件、迁移作业和转换工作区。您也可以选择保留这些实体,以便在下次迁移时重复使用。

后续步骤

详细了解 AlloyDB for PostgreSQL 的 Google Cloud 功能。请参阅 AlloyDB for PostgreSQL 功能