你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Visual Studio Code 的 PostgreSQL 扩展提供用于将 Oracle 数据库迁移到 PostgreSQL 的端到端工作流。 引导式向导将指导你连接到 Oracle 源、选择架构、配置用于 AI 辅助 DDL 转换的 Microsoft Foundry 模型,以及选择 PostgreSQL 暂存数据库进行验证。 创建项目后,仪表板将在单个视图中跟踪提取、转换、导出和审阅。
Important
Oracle 到 PostgreSQL 迁移工作流仅在Visual Studio Code可用。
架构和应用程序转换如何组合在一起
该扩展在两次传递中转换 Oracle 工作负荷。 架构转换首先运行,并生成数据库对象的 PostgreSQL 数据定义语言(DDL)。 应用程序转换随后运行,并更新调用这些对象的代码。
架构转换
架构转换将读取所选架构的 Oracle 数据字典,将提取的对象分组为依赖项排序的区块,并使用 Microsoft Foundry 部署转换每个区块。 转换的对象在写出之前会针对暂存数据库进行编译,因此会验证收到的 DDL,而不是最佳猜测。 运行生成:
- 对象级 PostgreSQL
.sql文件,按 Oracle 架构和对象类型进行组织。 - 一个转换报告,用于记录转换的对象、跳过的对象以及总体成功率。
- 查看需要人工判断的对象的任务,例如回退 DDL 或 Oracle 和 PostgreSQL 之间的差异行为。
- 描述架构中找到的 Oracle 模式以及如何映射到 PostgreSQL 的编码说明。
应用程序转换
应用程序转换面向围绕数据库的 Oracle 特定代码:SQL 脚本、存储过程调用、加载程序控制文件、shell 脚本和Java文件。 它采用架构转换中的编码说明作为输入,因此转换后的应用程序代码与实际生成的架构转换的对象名称、类型和调用约定一起排列。
可以在此扩展中转换与数据库相关的应用程序代码,或者将工作交给 GitHub Copilot 应用现代化扩展,以获取完整的现代化过程。
对两个传递进行排序
首先运行架构转换。 应用程序转换取决于架构转换生成的编码说明和转换的对象名称,因此在架构确定之前转换应用程序代码会生成面向可能仍更改的对象的代码。 如果在更改架构范围或修复源对象后重新运行架构转换,请根据更新的编码说明查看应用程序代码。
先决条件
在开始之前,请确保具备:
- 已安装 Visual Studio Code。
- 已安装 PostgreSQL 扩展 。
- 访问具有架构提取读取权限的 Oracle 源数据库。
- Azure Database for PostgreSQL灵活服务器,用作暂存验证数据库。 架构转换不支持将 HorizonDB 作为暂存数据库Azure。
- 部署了
gpt-5.2模型的 Microsoft Foundry 资源。 需要终结点 URL 和 API 密钥或具有访问权限的Microsoft Entra ID帐户。
验证迁移功能是否已启用
该 pgsql.enableMigrations 设置控制 迁移 视图和所有迁移命令。 默认情况下,此设置处于启用状态。
如果迁移视图未显示在边栏中,请打开Visual Studio Code设置(按 Ctrl+、Windows/Linux、Cmd+、macOS)并验证是否已pgsql.enableMigrations设置为true。
创建迁移项目
迁移项目是一个四步向导,在创建项目工作区之前收集源、目标和 AI 配置。
步骤 1:项目设置
在边栏中打开 “迁移 ”视图。
通过以下方式之一启动新项目:
- 如果工作区尚不包含迁移project,请在视图中选择“+ 创建迁移”Project。
- 选择 + 视图工具栏中的按钮。
- 右键单击资源管理器中的工作区文件夹,然后选择“打开迁移”Project。
“新建 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 用户的密码。 选择 “加载架构 ”以连接并检索可用架构的列表。
在 “架构 ”下拉列表中,选择要迁移的一个或多个架构。
选择 “下一步:PostgreSQL 连接”。
步骤 3:选择Azure Database for PostgreSQL暂存数据库
“选择 Azure Database for PostgreSQL 暂存数据库”页面用于选择 AI 模型用来验证已转换 DDL 文件的 PostgreSQL 实例。
Note
使用专用的临时数据库进行验证。 在转换过程中,该扩展可能会对此数据库执行已转换的 DDL。
- 在 PostgreSQL 连接 下拉列表中,选择现有的连接配置文件。 如果未列出所需的连接,请选择 “刷新配置文件 ”以重新加载可用配置文件,或首先在 “连接”和“标识 ”视图中创建新连接。
- 在 PostgreSQL 数据库 下拉列表中,选择目标数据库。 如果列表为空,请选择“ 加载数据库 ”。
- 选择数据库后,该扩展会自动验证是否安装了建议的 PostgreSQL 扩展。 还可以选择“ 验证扩展 ”以手动运行检查。 如果缺少任何扩展,页面会列出这些扩展,并提供有关将其加入允许列表和安装的指导。
- 选择“下一步:Microsoft Foundry 模型配置”。
步骤 4:配置 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 连接”以验证连接。
选择 创建迁移项目。
Tip
Microsoft Foundry 建议使用 500,000 TPM(每分钟令牌),以获得最佳的迁移性能。
运行架构迁移
创建项目后, 将打开 Oracle 迁移 仪表板。 仪表板显示 架构迁移 和 架构评审 卡片,以及一个用于汇总项目配置的 设置 折叠面板。
提取并转换架构
架构迁移卡(步骤 1)以连续管道的形式运行提取、转换和导出。
在 “架构迁移 ”卡上,选择“ 迁移”。
按钮标签会随着流水线的推进而更新:
地位 按钮标签 正在提取 提取中… 提取完成,等待转换 恢复迁移 正在转换 正在转换... 所有阶段完成 迁移完成 在展开的卡片中查看进度:
- 提取 显示提取的对象计数(例如,“提取了 42 个对象中的 15 个”),以及正在处理的当前架构和对象。
- 转换 显示转换后的区块计数(例如,“已转换的 8 个区块中的 3 个”)和正在处理的当前区块。
导出完成后,选择“ 查看迁移报告 ”以打开生成的迁移报告。
查看迁移任务
架构评审卡(步骤 2)显示转换后需要手动注意的项目。 审阅区域顶部的“ / 分组任务”切换器允许你选择如何浏览列表。
分组视图
分组视图按类别将审阅任务组织到可折叠的手风琴式分组中。 如果要一起处理相关问题,请使用此视图。
在 “架构评审 ”卡上,选择“ 审阅 ”以展开审阅图面,然后选择“ 分组”。
使用 “待处理” 和 “已处理” 选项卡,在仍需关注的任务和您已批准的任务之间切换。
展开组以查看其元数据(架构、对象类型、重要性)以及其中的各个任务卡。
使用组级操作批量处理任务:
Action 说明 全部运行 在 Copilot 代理模式下打开组中的所有待处理任务,以进行 AI 辅助审查。 全部解决 将组中的所有任务标记为已解决。 确认对话框显示组名称和任务计数,然后再继续操作。 全部重置 将该组中所有已解决的任务恢复为待处理状态。 在 “已解决 ”选项卡上可用。 在“任务”中查看 切换到筛选到此组的平面 任务 视图。 若要处理组中的单个任务,请选择“运行任务”以在 Copilot代理模式下打开该任务,或选择“解析”将其标记为已完成。 在已解决的任务中选择重置,使其返回到待处理状态。
Note
当一个组包含 800 多个任务时,全部解决和 全部重置将被禁用。
任务视图
任务视图以平面表格形式显示所有审阅任务。 当您想要跨所有任务进行排序、筛选或搜索,而不受分组限制时,请使用此视图。
- 在切换器中选择 “任务 ”。
- 使用筛选器下拉列表(状态、 关键性、 对象类型、 架构)缩小任务列表的范围。
- 在待处理项上选择 运行任务,在 Copilot 代理模式中将其打开,以进行 AI 辅助审查和更正。
- 修复项目后,选择“ 解析 ”将其标记为已完成。
Tip
选择仪表板中的 “查看日志 ”,检查提取和转换日志文件进行故障排除。
迁移应用程序代码
架构迁移后,将 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 输出结果,以便您识别任何需要手动调整的遗留问题。
Note
DDL 文件必须遵循 compare 命令的结构 folder/oracle|postgres/SCHEMA_NAME/DDL-TYPE/filename.sql 才能找到匹配的文件对。
管理迁移项目
使用边栏中的 “迁移 ”视图管理项目:
| Action | 说明 |
|---|---|
| 开放迁移项目 | 在仪表板中打开现有迁移项目。 |
| 在资源管理器中显示 | 在资源管理器视图中显示项目文件夹。 |
| Delete | 删除迁移项目。 系统会提示在删除之前进行确认。 |
| 刷新 | 重新加载当前工作区中的迁移项目列表。 |