你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Visual Studio Code PostgreSQL 扩展中的 Oracle 到 Azure Database for PostgreSQL 架构转换功能可帮助你将现有的 Oracle 数据库架构对象转换为与 PostgreSQL 兼容的架构。 此功能适用于关系架构,并确保转换后的架构可与 Azure Database for PostgreSQL 灵活服务器无缝配合工作。
该工具提供基于项目的用户界面来自动执行架构转换。 如果某些对象无法自动转换,该工具会将这些对象标记为“审阅任务”,可以使用 GitHub Copilot 代理手动解决这些任务。
Architecture
架构转换过程涉及多个组件协同工作:
- 源 Oracle 数据库:包含要转换的架构的现有 Oracle 数据库
- Visual Studio Code PostgreSQL 扩展:用于管理转换过程的主要接口
- Azure Database for PostgreSQL 灵活服务器:作为用于验证和测试的暂存数据库
- Azure OpenAI:为复杂架构对象提供智能转换功能
- 模式转换代理:由 AI 驱动的代理处理自动转换过程
工作原理
架构转换过程使用一种智能的多阶段方法,该方法将自动化转换与人工监督相结合:
- 连接和发现:该工具连接到 Oracle 数据库并编录所有架构对象。 它分析其结构、依赖项和复杂性,以创建转换计划。
- AI 驱动的转换:模式转换代理使用 Azure OpenAI 将 Oracle 特定的构造智能地转换为与 PostgreSQL 兼容的等效项。 AI 了解两个数据库平台的上下文、关系和最佳做法。
- Scratch环境中的验证:该工具在Azure Database for PostgreSQL数据库(Scratch数据库)环境中测试所有转换的对象。 此步骤确保在最终输出生成之前语法正确性和兼容性。
- 查看任务生成:该工具标记无法完全自动化的对象,或者需要人工判断作为审阅任务。 这些对象可能包括需要手动注意的复杂业务逻辑或 Oracle 特定的功能。
- 引导式解决方法:GitHub Copilot 代理模式为完成审阅任务提供智能帮助。 它提供上下文感知建议和 Azure Database for PostgreSQL 灵活服务器最佳做法,帮助你做出明智的决策。
-
输出生成:该工具将成功验证的对象转换为有组织的 PostgreSQL
.sql文件,可供部署到目标环境。
安装扩展
Oracle 到 PostgreSQL 架构转换功能内置于 Visual Studio Code 的 PostgreSQL 扩展 中。 不需要单独的扩展 - 它作为综合功能包含在主 PostgreSQL 扩展中。
安装步骤
-
打开扩展市场:在 Visual Studio Code 中,选择左侧活动栏中的“扩展”图标,或使用键盘快捷方式
Ctrl+Shift+X(Windows/Linux)或Cmd+Shift+X(macOS)。 - 搜索 PostgreSQL:在“扩展市场搜索”框中,键入“PostgreSQL”以查找扩展。
- 安装扩展:在搜索结果中找到 PostgreSQL 扩展,然后选择“ 安装”。
- 访问架构转换:安装扩展后,Visual Studio Code 边栏中会显示表示 PostgreSQL 扩展的大象图标。 可以通过此扩展接口访问架构转换功能。
模式转换工作流
本部分介绍 Oracle 到 PostgreSQL 架构转换工作流中使用的核心概念——包括转换单元(如架构、表、索引、视图和过程)、人工监督审查任务、临时数据库验证、AI 驱动的架构转换代理,以及生成的 PostgreSQL SQL 工件。 了解这些概念有助于解释转换结果、确定已标记项的优先级并解决已转换的文件,以便部署到 Azure Database for PostgreSQL 灵活服务器。
暂存数据库
在转换期间用于验证的 Azure Database for PostgreSQL 灵活服务器,以确保兼容性。 此方法可确保:
- 转换的对象语法正确
- 正确解析依赖项
- 保持性能特征
- 适当地应用特定于 Azure 的功能
查看任务
当 AI 无法完全转换对象或建议第二次查看时,该工具会标记手动评审的项目。 常见的评审任务包括:
- 需要手动优化的复杂 PL/SQL 过程
- 具有多个 PostgreSQL 替代项的 Oracle 特定数据类型
- 具有 Oracle 特定逻辑的自定义函数
GitHub Copilot 代理模式
Visual Studio Code 中集成了一个功能,提供引导式提示,帮助你完成审查任务,并与应用程序要求保持一致。 代理模式提供:
- 架构修改的上下文感知建议
- Azure Database for PostgreSQL 的最佳做法建议
- 用于复杂转换的代码补全
- 与现有开发工作流集成
安全和网络
使用架构转换功能时,请确保 Visual Studio Code 环境可以安全地连接到源 Oracle 数据库和用作暂存数据库的 Azure Database for PostgreSQL 灵活服务器实例。
Microsoft建议使用专用终结点连接到 Azure OpenAI 资源。 有关详细信息,请参阅 为 Azure OpenAI 创建专用终结点。
有关保护 Azure OpenAI 连接的详细信息,请访问 Azure AI Foundry 中 Azure Direct Models 的数据、隐私和安全性。
重要
客户验证责任:用于架构转换的相同 AI 引擎也有助于验证和审查。 AI 系统偶尔可以确认自己的错误。 若要防止数据丢失、功能回归或安全问题,请在部署到生产环境之前独立验证所有转换的对象和审阅任务解决方案。 作为控件的一部分,请考虑启用 Azure AI Foundry 内容筛选来帮助减少有害或不需要的输出。 有关指南,请参阅 Azure AI Foundry 中的内容筛选。
为何使用架构转换功能?
将 Oracle 架构转换为 Azure Database for PostgreSQL 简化了迁移和现代化。 它通过自动化转换、验证暂存数据库中的结果以及提供可部署的 AI 辅助评审和 Azure 优化输出来降低手动工作量和风险。
- 自动转换:通过自动转换兼容的架构对象来减少手动工作
- AI 支持的智能:使用 Azure OpenAI 做出智能转换决策
- 验证优先方法:使用暂存数据库确保转换的对象正常工作
- 集成工作流:在 Visual Studio Code 开发环境中无缝工作
- 评审和优化:为手动审阅任务提供明确的指导
- Azure 优化:专为 Azure Database for PostgreSQL 灵活服务器设计
支持的架构对象
转换工具支持广泛的 Oracle 架构和代码对象,包括数据定义元素、架构级组件和过程代码。 虽然可以自动转换许多常见对象,但可能需要手动查看或自定义某些 Oracle 特定功能或专有扩展的映射。 有关受支持对象和已知限制的详细列表,请参阅本文中的各节。
数据库架构对象
转换工具支持以下 Oracle 数据库对象:
- 表 - 表定义、列规范和表级约束
- 约束 - 主键、外键、唯一约束、检查约束
- 索引 - B 树索引、唯一索引、复合索引
- 序列 - 用于自动创建值的 Oracle 序列对象
- 触发器 - 行级别和语句级触发器
- 视图 - 标准数据库视图
- 具体化视图 - Oracle 具体化视图和刷新逻辑
- 模式 - 模式级别对象和组织
- 同义词 - 公共和专用同义词(有限制)
Oracle 代码对象
支持转换的高级 Oracle 代码构造:
- 触发器 - 复杂的触发器逻辑和事件处理
- 包 - Oracle 包规范和主体
- 函数 - 具有复杂逻辑的用户定义函数
- 存储过程 - Oracle 存储过程和参数处理
支持的 Oracle 版本
本部分总结了支持自动架构转换的数据库引擎版本,并重点介绍了兼容性注意事项。 使用列出的受支持 Oracle 和 PostgreSQL 版本获得最佳结果。 在非生产测试环境中验证转换,并使用每个受支持的主要版本的最新小版本补丁。 如果环境使用不受支持的版本或包含 Oracle 专有功能,则可能需要在部署之前执行额外的手动映射或评审。
以下 Oracle 数据库版本支持架构转换:
- Oracle 21c
- Oracle 18c
- Oracle 19c
- Oracle 12.2
- Oracle 12.1
反馈和支持
对于与架构转换功能或 PostgreSQL 扩展相关的 bug、功能请求和问题,请使用 Visual Studio Code 中的内置反馈工具。 可以通过两种方式访问此工具:
帮助菜单
转到 帮助>报告问题
命令面板
- 使用
Ctrl+Shift+P(Windows/Linux) 或Cmd+Shift+P(macOS) 打开命令面板。 - 运行以下命令: PGSQL:报告问题。
创建问题或提供反馈时,请在标题中添加Schema Conversion:作为前缀。 此前缀可帮助开发团队快速识别和确定架构转换相关反馈的优先级。 此反馈机制可帮助开发团队持续改进架构转换功能,并解决在 Oracle 到 PostgreSQL 迁移项目中遇到的任何问题。