你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 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:项目设置
在边栏中打开 迁移 视图。
通过以下方式之一启动新项目:
- 如果工作区尚不包含迁移项目,请在视图中选择+ 创建迁移项目。
- 选择视图工具栏中的 + 按钮。
- 右键单击资源管理器中的工作区文件夹,然后选择“打开迁移项目”。
“新建 Oracle 到 Azure Database for PostgreSQL 迁移项目”页面将会打开,其中列出了所需内容:
- 源数据库的连接详细信息
- 要转换的模式名称
- Microsoft Foundry 资源的终结点 URL 和密钥
- 现有Azure Database for PostgreSQL实例的连接名称
在“Project名称”字段中输入名称。
选择 “下一步:Oracle 连接”。
步骤 2:连接到 Oracle
“ 连接到 Oracle ”页收集 Oracle 源数据库凭据,并允许加载架构。
填写 Oracle 连接字段:
领域 说明 Oracle 主机名 Oracle 数据库服务器的主机名或 IP 地址。 Oracle 端口 侦听器端口 (默认值: 1521) 。Oracle SID 或服务名称 数据库实例的 Oracle SID 或服务名称。 Oracle 用户名 有权访问架构元数据和字典视图的数据库用户。 Oracle 密码 Oracle 用户的密码。 选择 “加载架构 ”以连接并检索可用架构的列表。
在 “架构 ”下拉列表中,选择要迁移的一个或多个架构。
选择 下一步:发现阶段。
步骤 3:查看发现结果
Discovery 会在 DDL 提取之前检查源权限并列出所选架构的清单。
- 检查权限设置,并解决任何缺失的源访问权限问题。
- 查看 已发现、要提取、排除和 无效对象,以及对象类型详细信息和排除原因。
- 查看模式依赖项。 依赖架构模式列出了您未选择的引用的架构模式;列出某个依赖项并不会将该架构模式纳入转换范围。
- 确认源范围。 如果更改所选内容,请在继续之前刷新 Discovery。
- 确认审阅的范围,然后选择“ 下一步:PostgreSQL 连接”。
有关完整的 Discovery 屏幕和指导,请参阅 教程中的“查看 Discovery 结果”。
步骤 4:选择一个 Azure Database for PostgreSQL 暂存数据库
“选择Azure Database for PostgreSQL暂存数据库”页选择用于验证已转换的 DDL 的数据库。
警告
转换会使用 DROP SCHEMA ... CASCADE 删除与所选 Oracle 架构对应的架构,然后重新创建它们。 此操作将删除这些架构中的现有对象和数据,并且可以删除其他架构中的依赖对象。 使用空的暂存数据库或专用的未使用的暂存数据库,该数据库不包含需要保留的对象或数据。
- 在 PostgreSQL 连接 下拉列表中,选择现有的连接配置文件。 如果未列出所需的连接,请选择 “刷新配置文件 ”以重新加载可用配置文件,或首先在 “连接”和“标识 ”视图中创建新连接。
- 在 PostgreSQL 数据库 下拉列表中,选择目标数据库。 如果列表为空,请选择“ 加载数据库 ”。
- 选择“验证扩展功能”以检查建议的扩展。 如果缺少任何扩展,请将转换所需的扩展添加到服务器的允许列表中,然后安装它们。 黄色警告不会阻止延续,但依赖对象可能需要手动更改。
- 选择确认:匹配的暂存架构会在转换期间被删除并重新创建。
- 选择“下一步:Microsoft Foundry 模型配置”。
步骤 5:配置 Microsoft Foundry 模型
“选择Microsoft Foundry 模型”页配置支持架构和代码转换的 Microsoft Foundry 部署。
完成语言模型字段:
领域 说明 模型名称 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 资源中已部署的模型的名称。 选择“测试Microsoft Foundry 连接”以验证连接。
选择 创建迁移项目。
分配大于 1,000,000 TPM 的部署配额。 请参阅配置Microsoft Foundry 容量。
运行架构迁移
创建项目后,运行转换并查看迁移项目中的结果。
提取并转换架构
- 选择“迁移”以开始提取和转换。
- 监视提取和转换进度。
- 项目显示架构转换已完成时,选择“查看转换摘要”。
转换完成后,HTML 报表会自动打开。 通过选择转换摘要上的转换报表重新打开它。 单独查看发现、提取和转换总计;它们描述了不同的阶段。
检查已转换的对象
使用转换对象资源管理器检查转换的对象和未转换的对象:
- 打开对象以比较其 Oracle 和 PostgreSQL 定义(如果可用),并阅读其转换说明。
- 选择 询问 以获取解释,或选择 修复,以便对其 PostgreSQL 文件进行 Copilot 辅助编辑。
- 如果架构对象已部署到非生产数据库,请通过确认活动服务器和数据库、选择完整语句并仅执行所选内容,在该处应用更正。 否则,请先准备下一节所述的部署。
- 确认部署 SQL 包含要部署的更正。 编辑对象文件不会确定其数据库对象或生成的部署脚本已更改。
有关筛选器、包成员和详细步骤,请参阅转换对象资源管理器。
准备部署
在 转换摘要中,选择 设置说明 以打开生成的部署说明并显示安装目录。 查看包,运行仅验证检查,然后针对单独的非生产目标数据库运行生成的部署脚本。 生成安装程序文件不会部署数据库架构。
在生产使用之前,请查看部署报告并独立验证数据和应用程序行为。 有关先决条件、数据库模式和命令,请参阅 使用安装体验部署转换的架构。
迁移应用程序代码
架构迁移后,将 Oracle 特定的应用程序代码(SQL 脚本、存储过程、加载程序控制文件、shell 脚本或Java文件)转换为与 PostgreSQL 兼容的等效项。 应用程序迁移是一项预览功能。
选择迁移方法
该扩展提供两个用于应用程序代码迁移的路径:
- 完整的应用现代化:如果安装 GitHub Copilot 应用现代化扩展,请选择“使用应用现代化迁移”继续迁移,并记录架构转换中的编码说明。 选择 “查看编码说明 ”以查看生成的指南,然后再继续操作。
- 仅限数据库选项:若要在此扩展中仅转换与数据库相关的应用程序代码,请选择 “使用 PostgreSQL 扩展进行迁移”。
在扩展中转换应用程序代码
- 在 应用程序迁移 卡上,选择“ 迁移数据 ”(如果检测到应用现代化扩展, 请选择“选择方法 ”。
- 在“ 转换应用程序 ”页中, 选择“选择 Oracle 应用程序以转换 ”,然后选择包含 Oracle 应用程序代码的文件夹。
- 选择PostgreSQL 连接和PostgreSQL 数据库作为转换上下文。
- 如果数据库列表为空,请选择“ 加载数据库 ”。
- 选择 “转换应用程序 ”以启动转换。
使用Copilot工具进行应用程序迁移
该扩展注册两个用于迁移帮助的Copilot语言模型工具:
Oracle 客户端代码应用程序转换器 (
pgsql_migration_oracle_app):使用架构迁移分析中的提示模板和编码指南将 Oracle 客户端应用程序代码转换为 PostgreSQL 等效项。 接受以下参数:- 应用程序代码库文件夹 (必需):要转换的代码的位置。
- 编码说明位置路径(可选):来自架构迁移的编码说明路径。
- Postgres DB 名称 (可选):用于转换上下文的 PostgreSQL 数据库的名称。
- Postgres DB 连接 (可选):PostgreSQL 数据库的连接名称。
显示 Oracle 到 Postgres 迁移报告 (
pgsql_migration_show_report):显示架构转换生成的迁移报告。 需要 报表文件路径 参数。
有关使用Copilot工具的详细信息,请参阅Copilot集成。
比较已转换的文件
转换后,使用内置的 diff 命令并排查看更改。
- 在资源管理器中,右键单击迁移项目中位于
oracle或postgres文件夹下的已转换 SQL 文件,然后选择 比较 DDL 迁移文件对。 - 对于已转换的应用程序代码文件(
.sql、、.ctl.sh或.load.java),右键单击该文件并选择“比较应用程序迁移文件对”。
并排差异视图会并排显示原始 Oracle 源内容和转换后的 PostgreSQL 输出,以便可识别任何需要手动调整的工件。
Compare DDL Migration File Pairs 命令需要结构folder/oracle|postgres/SCHEMA_NAME/DDL-TYPE/filename.sql来查找匹配对。 对于架构转换输出,请使用转换对象资源管理器导航源到目标映射。
管理迁移项目
使用边栏中的 “迁移 ”视图管理项目:
| Action | 说明 |
|---|---|
| 开放迁移项目 | 在仪表板中打开现有迁移项目。 |
| 在资源管理器中显示 | 在资源管理器视图中显示项目文件夹。 |
| Delete | 删除迁移项目。 系统会提示在删除之前进行确认。 |
| 刷新 | 重新加载当前工作区中的迁移项目列表。 |
相关内容
- 什么是从 Oracle 到 Azure Database for PostgreSQL 灵活服务器的架构转换?
- 教程:Oracle 到 Azure Database for PostgreSQL 灵活服务器架构转换
- 从 Oracle 到 Azure Database for PostgreSQL 灵活服务器模式转换的最佳做法
- 在 Conversion 对象资源管理器 中查看已转换的对象
- 查看 HTML 转换报告
- 使用 Setup Experience 部署转换后的模式
- Oracle 到 Azure Database for PostgreSQL 灵活服务器的架构转换限制
- Copilot 集成
- 连接和标识
- 设置参考
- Copilot工具参考