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

Oracle 到 PostgreSQL 的迁移

适用于 Visual Studio Code 的 PostgreSQL 扩展为 Oracle 架构和应用程序转换提供了引导式工作流。 向导将引导你连接到 Oracle、选择架构、查看发现结果、选择 PostgreSQL 暂存数据库以及配置 Microsoft Foundry。 转换后,查看 HTML 报告和转换对象资源管理器,然后使用设置体验准备部署。 单独规划行数据迁移。

Important

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

架构模式和应用程序转换如何组合在一起

该扩展分两个阶段转换 Oracle 工作负荷。 架构转换首先运行,并生成数据库对象的 PostgreSQL 数据定义语言(DDL)。 应用程序转换随后运行,并更新调用这些对象的代码。

架构转换

架构模式转换读取所选架构模式的 Oracle 数据字典,并使用 Microsoft Foundry 部署生成 PostgreSQL DDL。 该工具尝试在暂存数据库中进行编译,并使用可用的静态检查来识别问题。 这些检查并不能证明具备等效的运行时行为或生产就绪性。 一次运行生成:

  • 对象级 PostgreSQL .sql 文件,按 Oracle 架构和对象类型进行组织。
  • 包含发现、提取和转换结果、转换速率和对象级注释的 HTML 转换报告。
  • 可以在转换对象资源管理器中检查的对象映射和注释,包括需要手动更改的对象。
  • 为单独的部署操作设置说明和脚本。
  • 描述模式中找到的 Oracle 模式类型以及如何映射到 PostgreSQL 的编码说明。

应用程序转换

应用程序转换针对数据库周边的 Oracle 特有代码:SQL 脚本、存储过程调用、加载控制文件、Shell 脚本和 Java 文件。 它采用架构转换中的编码说明作为输入,因此转换后的应用程序代码与架构转换实际生成的对象名称、类型和调用约定保持一致。

可以在此扩展中转换与数据库相关的应用程序代码,或者将工作交给 GitHub Copilot 应用现代化扩展,以获取完整的现代化过程。

对两遍进行排序

首先运行架构模式转换。 应用程序转换使用编码说明和来自架构转换的已转换对象名称。 在转换应用程序代码之前,请先检查架构并完成必要的修改。 如果以后编辑 PostgreSQL 定义,请再次检查调用该定义的应用程序。 不支持重新运行已完成的架构转换。

先决条件

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

  • 已安装 Visual Studio Code。
  • 已安装 PostgreSQL 扩展 。
  • 对 Oracle 源数据库的访问权限,有权读取架构元数据和字典视图。 不需要访问行数据。
  • 一个 Azure Database for PostgreSQL 灵活服务器,其中包含一个空的或专用的、未使用的临时数据库,且其中不包含任何需要保留的内容。 连接用户必须能够删除和重新创建相应的架构,以及创建验证对象。 架构转换不支持将 Azure HorizonDB 用作暂存数据库。
  • 已部署gpt-5.2模型且配额超过每分钟 1,000,000 个令牌(TPM)的 Microsoft Foundry 资源。 需要终结点 URL 和 API 密钥或具有访问权限的Microsoft Entra ID帐户。

有关操作系统、版本、权限和连接要求,请参阅 架构模式转换教程先决条件。

验证迁移功能是否已启用

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

如果迁移视图未显示在边栏中,请打开 Visual Studio Code 设置(在 Windows/Linux 上按 Ctrl+,,在 macOS 上按 Cmd+,)并验证 pgsql.enableMigrations 是否设置为 true。

创建迁移项目

迁移项目向导在创建项目工作区之前收集您的源、发现范围、暂存数据库连接和 AI 配置。

步骤 1:项目设置

  1. 在边栏中打开 迁移 视图。

  2. 通过以下方式之一启动新项目:

    • 如果工作区尚不包含迁移项目,请在视图中选择+ 创建迁移项目。
    • 选择视图工具栏中的 + 按钮。
    • 右键单击资源管理器中的工作区文件夹,然后选择“打开迁移项目”。

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

    • 源数据库的连接详细信息
    • 要转换的模式名称
    • Microsoft Foundry 资源的终结点 URL 和密钥
    • 现有Azure Database for 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. 选择 下一步:发现阶段。

步骤 3:查看发现结果

Discovery 会在 DDL 提取之前检查源权限并列出所选架构的清单。

  1. 检查权限设置,并解决任何缺失的源访问权限问题。
  2. 查看 已发现、要提取、排除和 无效对象,以及对象类型详细信息和排除原因。
  3. 查看模式依赖项。 依赖架构模式列出了您未选择的引用的架构模式;列出某个依赖项并不会将该架构模式纳入转换范围。
  4. 确认源范围。 如果更改所选内容,请在继续之前刷新 Discovery。
  5. 确认审阅的范围,然后选择“ 下一步:PostgreSQL 连接”。

有关完整的 Discovery 屏幕和指导,请参阅 教程中的“查看 Discovery 结果”。

步骤 4:选择一个 Azure Database for PostgreSQL 暂存数据库

“选择Azure Database for PostgreSQL暂存数据库”页选择用于验证已转换的 DDL 的数据库。

警告

转换会使用 DROP SCHEMA ... CASCADE 删除与所选 Oracle 架构对应的架构,然后重新创建它们。 此操作将删除这些架构中的现有对象和数据,并且可以删除其他架构中的依赖对象。 使用空的暂存数据库或专用的未使用的暂存数据库,该数据库不包含需要保留的对象或数据。

  1. 在 PostgreSQL 连接 下拉列表中,选择现有的连接配置文件。 如果未列出所需的连接,请选择 “刷新配置文件 ”以重新加载可用配置文件,或首先在 “连接”和“标识 ”视图中创建新连接。
  2. 在 PostgreSQL 数据库 下拉列表中,选择目标数据库。 如果列表为空,请选择“ 加载数据库 ”。
  3. 选择“验证扩展功能”以检查建议的扩展。 如果缺少任何扩展,请将转换所需的扩展添加到服务器的允许列表中,然后安装它们。 黄色警告不会阻止延续,但依赖对象可能需要手动更改。
  4. 选择确认:匹配的暂存架构会在转换期间被删除并重新创建。
  5. 选择“下一步:Microsoft Foundry 模型配置”。

步骤 5:配置 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 时显示)。
    租户 Microsoft Entra帐户的租户(在身份验证方法为Microsoft Entra ID时显示)。
    部署名称 Microsoft Foundry 资源中已部署的模型的名称。
  2. 选择“测试Microsoft Foundry 连接”以验证连接。

  3. 选择 创建迁移项目。

分配大于 1,000,000 TPM 的部署配额。 请参阅配置Microsoft Foundry 容量。

运行架构迁移

创建项目后,运行转换并查看迁移项目中的结果。

提取并转换架构

  1. 选择“迁移”以开始提取和转换。
  2. 监视提取和转换进度。
  3. 项目显示架构转换已完成时,选择“查看转换摘要”。

转换完成后,HTML 报表会自动打开。 通过选择转换摘要上的转换报表重新打开它。 单独查看发现、提取和转换总计;它们描述了不同的阶段。

检查已转换的对象

使用转换对象资源管理器检查转换的对象和未转换的对象:

  1. 打开对象以比较其 Oracle 和 PostgreSQL 定义(如果可用),并阅读其转换说明。
  2. 选择 询问 以获取解释,或选择 修复,以便对其 PostgreSQL 文件进行 Copilot 辅助编辑。
  3. 如果架构对象已部署到非生产数据库,请通过确认活动服务器和数据库、选择完整语句并仅执行所选内容,在该处应用更正。 否则,请先准备下一节所述的部署。
  4. 确认部署 SQL 包含要部署的更正。 编辑对象文件不会确定其数据库对象或生成的部署脚本已更改。

有关筛选器、包成员和详细步骤,请参阅转换对象资源管理器。

准备部署

在 转换摘要中,选择 设置说明 以打开生成的部署说明并显示安装目录。 查看包,运行仅验证检查,然后针对单独的非生产目标数据库运行生成的部署脚本。 生成安装程序文件不会部署数据库架构。

在生产使用之前,请查看部署报告并独立验证数据和应用程序行为。 有关先决条件、数据库模式和命令,请参阅 使用安装体验部署转换的架构。

迁移应用程序代码

架构迁移后,将 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. 在资源管理器中,右键单击迁移项目中位于 oracle 或 postgres 文件夹下的已转换 SQL 文件,然后选择 比较 DDL 迁移文件对。
  2. 对于已转换的应用程序代码文件(.sql、、.ctl.sh或.load.java),右键单击该文件并选择“比较应用程序迁移文件对”。

并排差异视图会并排显示原始 Oracle 源内容和转换后的 PostgreSQL 输出,以便可识别任何需要手动调整的工件。

Compare DDL Migration File Pairs 命令需要结构folder/oracle|postgres/SCHEMA_NAME/DDL-TYPE/filename.sql来查找匹配对。 对于架构转换输出,请使用转换对象资源管理器导航源到目标映射。

管理迁移项目

使用边栏中的 “迁移 ”视图管理项目:

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