你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Oracle 到 PostgreSQL 的迁移

适用于 Visual Studio Code 的 PostgreSQL 扩展提供用于将 Oracle 数据库迁移到 PostgreSQL 的端到端工作流。 引导式向导将指导你连接到 Oracle 源、选择架构、配置用于 AI 辅助 DDL 转换的 Microsoft Foundry 模型,以及选择 PostgreSQL 暂存数据库进行验证。 创建项目后,仪表板将在单个视图中跟踪提取、转换、导出和审阅。

Important

Oracle 到 PostgreSQL 迁移工作流仅在Visual Studio Code可用。

先决条件

在开始之前,请确保具备:

  • 已安装 Visual Studio Code
  • 已安装 PostgreSQL 扩展
  • 访问具有架构提取读取权限的 Oracle 源数据库。
  • 用作临时验证数据库的 PostgreSQL 实例(例如,Azure Database for PostgreSQL 灵活服务器)。
  • 部署了gpt-5.2模型的 Microsoft Foundry 资源。 需要终结点 URL 和 API 密钥或具有访问权限的Microsoft Entra ID帐户。

验证迁移功能是否已启用

pgsql.enableMigrations 设置控制 迁移(预览版) 视图和所有迁移命令。 默认情况下,此设置处于启用状态。

如果 迁移视图(预览版) 视图未显示在边栏中,请验证设置:

  1. 打开 VS Code 设置(在 Windows/Linux 上按 Ctrl+,,在 macOS 上按 Cmd+,)。
  2. 搜索 pgsql.enableMigrations
  3. 确认值为 true.

创建迁移项目

迁移项目是一个四步向导,在创建项目工作区之前收集源、目标和 AI 配置。

步骤 1:项目设置

  1. 在边栏中打开 迁移(预览版) 视图。

  2. 选择视图工具栏中的 + 按钮,或在资源管理器中右键单击工作区文件夹,然后选择“创建迁移项目”。

    “新建 Oracle 到 Azure Database for PostgreSQL 迁移项目”页面将会打开,其中列出了所需内容:

    • 源数据库的连接详细信息
    • 要转换的架构的名称
    • Microsoft Foundry 资源的终结点 URL 和密钥
    • 现有 PostgreSQL 实例的连接名称
  3. “Project名称”字段中输入名称。

  4. 选择 “下一步:Oracle 连接”。

新建迁移项目页面的屏幕截图,其中包含“项目名称”字段。

步骤 2:连接到 Oracle

连接到 Oracle ”页收集 Oracle 源数据库凭据,并允许加载架构。

  1. 填写 Oracle 连接字段:

    领域 说明
    Oracle 主机名 Oracle 数据库服务器的主机名或 IP 地址。
    Oracle 端口 侦听器端口 (默认值: 1521) 。
    Oracle SID 或服务名称 数据库实例的 Oracle SID 或服务名称。
    Oracle 用户名 具有对架构对象的读取访问权限的数据库用户。
    Oracle 密码 Oracle 用户的密码。
  2. 选择 “加载架构 ”以连接并检索可用架构的列表。

  3. “架构 ”下拉列表中,选择要迁移的一个或多个架构。

  4. 选择 “下一步:PostgreSQL 连接”。

步骤 3:选择Azure Database for PostgreSQL暂存数据库

“选择 Azure Database for PostgreSQL 暂存数据库”页面用于选择 AI 模型用来验证已转换 DDL 文件的 PostgreSQL 实例。

Note

使用专用的临时数据库进行验证。 在转换过程中,该扩展可能会对此数据库执行已转换的 DDL。

  1. PostgreSQL 连接 下拉列表中,选择现有的连接配置文件。 如果未列出所需的连接,请选择 “刷新配置文件 ”以重新加载可用配置文件,或首先在 “连接”和“标识 ”视图中创建新连接。
  2. PostgreSQL 数据库 下拉列表中,选择目标数据库。 如果列表为空,请选择“ 加载数据库 ”。
  3. 选择数据库后,该扩展会自动验证已安装建议的 PostgreSQL 扩展。 还可以选择“ 验证扩展 ”以手动运行检查。 如果缺少任何扩展,页面会列出这些扩展,并提供有关如何将其列入允许列表以及如何参考 Azure Database for PostgreSQL 灵活服务器文档进行安装的指导。
  4. 选择“下一步:Microsoft Foundry 模型配置”。

步骤 4:配置 Microsoft Foundry 模型

选择Microsoft Foundry 模型”页配置支持架构和代码转换的 Microsoft Foundry 部署。

  1. 完成语言模型字段:

    领域 说明
    模型名称 gpt-5.2
    Microsoft Foundry 终结点 Microsoft Foundry 资源终结点 URL(例如https://<resource>.openai.azure.com/)。
    身份验证方法 选择 API 密钥Microsoft Entra ID
    Microsoft Foundry API 密钥 Microsoft Foundry 资源的 API 密钥(在身份验证方法API 密钥时显示)。
    Azure帐户 有权访问该资源的 Microsoft 帐户(当 身份验证方法Microsoft Entra ID 时显示)。
    租户 该帐户的 Azure AD 租户(当 身份验证方法Microsoft Entra ID 时显示)。
    部署名称 Microsoft Foundry 资源中已部署的模型的名称。
  2. 选择“测试Microsoft Foundry 连接”以验证连接。

  3. 选择 创建迁移项目

Tip

Microsoft Foundry 建议使用 500,000 TPM(每分钟令牌),以获得最佳的迁移性能。

运行架构迁移

创建项目后, 将打开 Oracle 迁移 仪表板。 仪表板显示 架构迁移架构评审 卡片,以及一个用于汇总项目配置的 设置 折叠面板。

提取并转换架构

架构迁移卡(步骤 1)以连续管道的形式运行提取、转换和导出。

  1. “架构迁移 ”卡上,选择“ 迁移”。

    按钮标签会随着流水线的推进而更新:

    地位 按钮标签
    正在提取 提取中…
    提取完成,等待转换 恢复迁移
    正在转换 正在转换...
    所有阶段完成 迁移完成
  2. 在展开的卡片中查看进度:

    • 提取 显示提取的对象计数(例如,“提取了 42 个对象中的 15 个”),以及正在处理的当前架构和对象。
    • 转换 显示转换后的区块计数(例如,“已转换的 8 个区块中的 3 个”)和正在处理的当前区块。
  3. 导出完成后,选择“ 查看迁移报告 ”以打开生成的迁移报告。

查看迁移任务

架构评审卡(步骤 2)显示转换后需要手动注意的项目。 审阅区域顶部的 / 分组任务”切换器允许你选择如何浏览列表。

分组视图

分组视图按类别将审阅任务组织到可折叠的手风琴式分组中。 如果要一起处理相关问题,请使用此视图。

  1. “架构评审 ”卡上,选择“ 审阅 ”以展开审阅图面,然后选择“ 分组”。

  2. 使用 “待处理”“已处理” 选项卡,在仍需关注的任务和您已批准的任务之间切换。

  3. 展开组以查看其元数据(架构、对象类型、重要性)以及其中的各个任务卡。

  4. 使用组级操作批量处理任务:

    Action 说明
    全部运行 在 Copilot 代理模式下打开组中的所有待处理任务,以进行 AI 辅助审查。
    全部解决 将组中的所有任务标记为已解决。 确认对话框显示组名称和任务计数,然后再继续操作。
    全部重置 将该组中所有已解决的任务恢复为待处理状态。 在 “已解决 ”选项卡上可用。
    在“任务”中查看 切换到筛选到此组的平面 任务 视图。
  5. 若要处理组中的单个任务,请选择“运行任务”以在 Copilot代理模式下打开该任务,或选择“解析”将其标记为已完成。 在已解决的任务中选择重置,使其返回到待处理状态。

Note

当一个组包含 800 多个任务时,全部解决全部重置将被禁用。

任务视图

任务视图以平面表格形式显示所有审阅任务。 当您想要跨所有任务进行排序、筛选或搜索,而不受分组限制时,请使用此视图。

  1. 在切换器中选择 “任务 ”。
  2. 使用筛选器下拉列表(状态关键性对象类型架构)缩小任务列表的范围。
  3. 在待处理项上选择 运行任务,在 Copilot 代理模式中将其打开,以进行 AI 辅助审查和更正。
  4. 修复项目后,选择“ 解析 ”将其标记为已完成。

Tip

选择仪表板中的 “查看日志 ”,检查提取和转换日志文件进行故障排除。

迁移应用程序代码

架构迁移后,将 Oracle 特定的应用程序代码(SQL 脚本、存储过程、加载程序控制文件、shell 脚本或Java文件)转换为与 PostgreSQL 兼容的等效项。 应用程序迁移是一项预览功能。

选择迁移方法

该扩展提供两个用于应用程序代码迁移的路径:

  • 全应用现代化 — 如果已安装 GitHub Copilot 应用现代化扩展,请选择 使用应用现代化进行迁移,结合架构转换中的编码说明继续迁移。 选择 “查看编码说明 ”以查看生成的指南,然后再继续操作。
  • 仅数据库选项 - 若要在此扩展中仅转换与数据库相关的应用程序代码,请选择 “使用 PostgreSQL 扩展进行迁移”。

在扩展中转换应用程序代码

  1. 应用程序迁移 卡上,选择“ 迁移数据 ”(如果检测到应用现代化扩展, 请选择“选择方法 ”。
  2. 在“ 转换应用程序 ”页中, 选择“选择 Oracle 应用程序以转换 ”,然后选择包含 Oracle 应用程序代码的文件夹。
  3. 选择PostgreSQL 连接PostgreSQL 数据库作为转换上下文。
  4. 如果数据库列表为空,请选择“ 加载数据库 ”。
  5. 选择 “转换应用程序 ”以启动转换。

使用Copilot工具进行应用程序迁移

该扩展注册两个用于迁移帮助的Copilot语言模型工具:

  • Oracle 客户端代码应用程序转换器pgsql_migration_oracle_app) - 使用架构迁移分析中的提示模板和编码指南将 Oracle 客户端应用程序代码转换为 PostgreSQL 等效项。 接受以下参数:

    • 应用程序代码库文件夹 (必需) - 要转换的代码的位置。
    • 编码说明路径(可选)— 架构迁移中的编码说明路径。
    • Postgres DB 名称 (可选) - 用于转换上下文的 PostgreSQL 数据库的名称。
    • Postgres DB 连接 (可选) - PostgreSQL 数据库的连接名称。
  • 显示 Oracle 到 Postgres 迁移报告pgsql_migration_show_report) - 显示架构转换生成的迁移报告。 需要 报表文件路径 参数。

有关使用Copilot工具的详细信息,请参阅Copilot集成

比较已转换的文件

转换后,使用内置的 diff 命令并排查看更改。

  1. 在资源管理器中,右键单击迁移项目中位于 oraclepostgres 文件夹下的已转换 SQL 文件,然后选择 比较 DDL 迁移文件对
  2. 对于已转换的应用程序代码文件(.sql、、.ctl.sh.load.java),右键单击该文件并选择“比较应用程序迁移文件对”。

并排差异视图会并排显示原始 Oracle 源内容和转换后的 PostgreSQL 输出结果,以便您识别任何需要手动调整的遗留问题。

Note

DDL 文件必须遵循 compare 命令的结构 folder/oracle|postgres/SCHEMA_NAME/DDL-TYPE/filename.sql 才能找到匹配的文件对。

管理迁移项目

使用边栏中的 迁移(预览版) 视图来管理项目:

Action 说明
开放迁移项目 在仪表板中打开现有迁移项目。
在资源管理器中显示 在资源管理器视图中显示项目文件夹。
Delete 删除迁移项目。 系统会提示在删除之前进行确认。
刷新 重新加载当前工作区中的迁移项目列表。