从 Oracle 迁移到 Cloud SQL for PostgreSQL 的概览

借助 Database Migration Service,您可以将 Oracle 数据库架构、表和代码对象转换为 PostgreSQL 语法,然后将数据从 Oracle 数据库迁移到 Cloud SQL for PostgreSQL。Database Migration Service 支持多种不同的 Oracle 产品,包括裸金属解决方案、Oracle Real Application Clusters (RAC) 和自管式实例。

本页面简要介绍了 Database Migration Service 的关键功能,这些功能可用于将 Oracle 异构迁移到 Cloud SQL for PostgreSQL:

  • 支持的来源和目标列出了 Database Migration Service 支持的所有 Oracle 版本。

  • 代码和架构转换介绍了 Database Migration Service 如何帮助您将架构、表和其他对象从 Oracle 语法转换为 PostgreSQL 语法。

  • 持续迁移数据流提供了迁移过程中数据在 Google Cloud 中的移动方式的端到端概览。

  • 监控介绍了可帮助您观察迁移作业进度和运行状况的日志和指标。

  • 迁移安全性着眼于 Database Migration Service 提供的加密功能。

支持的源数据库和目标数据库

Database Migration Service 支持将以下 Oracle 数据库作为迁移源:

  • Amazon RDS for Oracle
  • 自行托管的部署,包括:
    • Oracle 单实例数据库部署
    • Oracle Exadata
    • Oracle Active Data Guard
    • Oracle Real Application Clusters (RAC)

完整支持还取决于您的源 Oracle 版本。 下表列出了异构 Oracle 迁移的所有受支持版本:

源数据库 目标数据库
Oracle 11g,版本 11.2.0.4 Cloud SQL for PostgreSQL 12、13、14、15、16、17、18。
Oracle 12c,12.1.0.2 版
Oracle 12c,12.2.0.1 版
Oracle 18c
Oracle 19c
Oracle 21c

不支持的源数据库

Database Migration Service 不支持从 Oracle Autonomous Database 迁移。

代码和架构转换

Database Migration Service 转换工作区提供交互式编辑器体验,您可以在其中将架构、表和其他对象从 Oracle 语法转换为 PostgreSQL 语法。您可以通过直接连接到源数据库来准备转换工作区,也可以通过将提取的架构文件上传到 Cloud Storage 来离线准备转换工作区。交互式转换工作区还支持 Gemini 辅助工作流,提供代码可解释性和转换问题修复功能。

如需了解详情,请参阅 转换工作区。

迁移数据流

对于从 Oracle 到 PostgreSQL 的异构迁移,Database Migration Service 支持持续和一次性迁移流程。在持续迁移中,系统会先从完整转储中加载数据,然后根据 数据库日志文件中显示的数据更改信息持续更新数据

使用 Database Migration Service 将 Oracle 迁移到 Cloud SQL for PostgreSQL 的数据流图,显示从源到目标的持续复制。
图 1. 在 Database Migration Service 异构迁移(从 Oracle 迁移到 Cloud SQL for PostgreSQL)期间持续移动数据。(点击可放大)
使用 Database Migration Service 将 Oracle 迁移到 Cloud SQL for PostgreSQL 的数据流图,显示从源到目标的持续复制。

概括来讲,您的数据会按以下方式经历各个迁移阶段:

一次性迁移

  1. 您可以使用 Database Migration Service 转换工作区将架构、表和其他对象从 Oracle 语法转换为 PostgreSQL 语法。

    Oracle 数据库通常有数千个对象,您需要转换这些对象的架构。借助 Database Migration Service,您可以将工作分为多个阶段。Database Migration Service 可以连接到源数据库,并在需要时拉取所需的架构信息。

  2. 将所有实体转换为 PostgreSQL 语法后,您需要将架构应用于目标实例中的数据库。

    此阶段的目标是准备目标数据库,以便 Database Migration Service 稍后可以将数据从源表复制到 AlloyDB for PostgreSQL 中的正确等效项。

    应用架构后,您就可以开始数据迁移了。

  3. 完全转储阶段是一次性迁移过程的唯一部分。在此阶段,Database Migration Service 会连接到源实例,读取您选择迁移的表的内容,然后将数据加载到 AlloyDB for PostgreSQL 目标实例。

    对于一次性迁移,我们建议您在完整转储阶段停用对源数据库的写入操作。这样,您就可以避免丢失迁移过程开始后创建的数据。

  4. 完整转储阶段结束后,您可以提升目标数据库,并将应用切换为使用新的目标数据库。

持续迁移

  1. 您可以使用 Database Migration Service 转换工作区将架构、表和其他对象从 Oracle 语法转换为 PostgreSQL 语法。

    Oracle 数据库通常有数千个对象,您需要转换这些对象的架构。借助 Database Migration Service,您可以将工作分为多个阶段。Database Migration Service 可以连接到源数据库,并在需要时拉取所需的架构信息。

  2. 将所有实体转换为 PostgreSQL 语法后,您需要将架构应用于目标实例中的数据库。

    此阶段的目标是准备目标数据库,以便 Database Migration Service 稍后可以将数据从源表复制到 AlloyDB for PostgreSQL 中的正确等效项。

    应用架构后,您就可以开始数据迁移了。

  3. 完整转储阶段是迁移过程的第一部分。 您可以通过以下两种方式完成完整转储:

    • 自动:Database Migration Service 会连接到源实例,读取您选择迁移的表的内容,然后将数据加载到 AlloyDB for PostgreSQL 目标实例。

      在此阶段,Database Migration Service 会捕获数据库的实际内容。

    • 手动:您可以跳过完整转储阶段,在 Database Migration Service 之外自行执行。如果这样做,您可以通过提供 Oracle 系统变更编号作为复制的起点,从变更数据捕获 (CDC) 阶段开始迁移过程。
  4. 对于持续迁移,当完整转储阶段结束时,Database Migration Service 会切换到 CDC 阶段。在 CDC 期间,Database Migration Service 会持续监控源数据库中的更改,然后持续在目标实例上复制这些更改。

    在 CDC 阶段,Database Migration Service 不会从源表复制实际数据,而是读取从 数据库日志文件中提取的信息,以在目标中复制更改。如需详细了解此机制,请参阅 变更数据捕获。 当您希望切换应用以使用 AlloyDB for PostgreSQL 目标实例作为生产数据库时,可以停止正在进行的复制并提升迁移作业。

如需查看详细的分步迁移指南,请参阅 Oracle 到 Cloud SQL for PostgreSQL 迁移指南。

监控

示例图表,显示 Database Migration Service 中从 Oracle 到 Cloud SQL for PostgreSQL 的迁移作业的复制延迟指标。
图 2. 示例可观测性图表,显示 Database Migration Service 迁移作业中的复制延迟。(点击可放大)
示例图表,显示 Database Migration Service 中从 Oracle 到 Cloud SQL for PostgreSQL 的迁移作业的复制延迟指标。

Database Migration Service 提供广泛的日志记录和可观测性功能,可帮助您监控迁移进度。这些功能包括针对复制延迟和 CDC 进度的实时诊断,以及针对 Cloud SQL for PostgreSQL 目标实例运行状况和迁移作业状态的详细日志。

如需了解详情,请参阅迁移作业指标。

迁移安全性

Database Migration Service 提供了多种加密机制,您可以在迁移过程中使用这些机制来提高安全性。这些机制包括:

  • 用于加密 Database Migration Service 与源数据库之间的网络连接的 SSL/TLS 证书。如需了解详情,请参阅 加密概览。

  • 用于在完整转储和 CDC 阶段保护数据移动的加密证书。如需了解详情,请参阅 适用于迁移作业的 CMEK。

后续步骤