你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本教程将指导你如何使用结合 Microsoft Foundry 的 Visual Studio Code PostgreSQL 扩展,将 Oracle 数据库架构转换为 Azure Database for PostgreSQL 的架构,并自动执行和验证架构转换。
它涵盖了连接到你的 Oracle 源和 Azure Database for PostgreSQL 目标、配置 Microsoft Foundry、运行迁移向导以及审查生成的 PostgreSQL 项目。 在开始之前,请确保您具备访问两台服务器和 Microsoft Foundry 部署所需的网络连接和凭据。
以下是转换期间可以期待的内容:
- 架构发现:该工具分析 Oracle 架构对象。
- AI 处理:Microsoft Foundry 进程并转换兼容的对象。
- 验证:转换的对象在暂存数据库中进行验证。
- 查看任务:标记需要手动注意的对象。
- 输出生成:已成功转换的对象保存为 PostgreSQL 文件。
先决条件
本部分介绍在开始转换之前在 Visual Studio Code 中使用 Oracle 到 Azure Database for PostgreSQL 架构转换功能的先决条件。
系统要求
| 类别 | 详细信息 |
|---|---|
| Visual Studio Code 版本 | 1.95.2 或更高版本 |
| GitHub Copilot 订阅 | Pro+、Business、Enterprise |
操作系统支持
| 操作系统 | 支持详细信息 |
|---|---|
| Windows | 仅限 x64 体系结构 |
| Linux | x64 体系结构 |
| macOS | macOS 13+ |
目标 Azure Database for PostgreSQL 要求
| 组件 | 版本要求 |
|---|---|
| Azure Database for PostgreSQL | PostgreSQL 版本 15 或更高版本 |
| 临时数据库 | Azure 数据库适用于 PostgreSQL 灵活服务器 |
AI 模型要求
需要配置以下 AI 组件之一:
| AI 组件 | 型号版本 |
|---|---|
| Microsoft Foundry | GPT-5.2 部署 |
Microsoft Foundry 部署配置
在 Microsoft Foundry 中,创建使用 gpt-5.2 模型的部署。 部署名称是创建部署时选择的部署名称;它不必与模型名称匹配。
终结点是你的 Microsoft Foundry 资源 URL。 Microsoft Foundry 资源公开多个等效主机名;以下任何格式都有效:
https://{your-resource}.services.ai.azure.comhttps://{your-resource}.openai.azure.comhttps://{your-resource}.cognitiveservices.azure.com
将 {your-resource} 替换为 Microsoft Foundry 资源名称(例如,oracletopg)。 如果需要直接调用推理路由,则当前预览路径为 /openai/responses?api-version=2025-04-01-preview。
有关终结点格式和推理路由的详细信息,请参阅 Microsoft Foundry 模型的终结点。
小窍门
若要通过Azure API 管理路由 Microsoft Foundry 流量,以便集中治理、限制和可观测性,请在 Foundry 资源前面配置 AI 网关,并使用网关 URL 作为终结点。 有关详细信息,请参阅 在 Foundry 资源中配置 AI 网关。
所需的数据库特权
在运行架构转换之前,请确保你使用的帐户在源 Oracle 数据库和临时 Azure Database for PostgreSQL 灵活服务器上均拥有所需最低权限。 Oracle 帐户需要对数据和字典视图的读取访问权限,以便该工具可以分析架构和代码。 Azure Database for PostgreSQL暂存帐户必须能够创建架构、表和其他对象以进行验证。 尽可能使用专用服务帐户。 遵循最小特权原则。 与 DBA 协调,以授予任何临时提升的权限,并在开始转换之前验证连接和访问权限。
源 Oracle 特权
源 Oracle 数据库需要以下最低权限:
| 权限 | Purpose |
|---|---|
| CONNECT | 基本数据库连接 |
| SELECT_CATALOG_ROLE | 访问数据字典视图 |
| 选择任意字典 | 读取系统元数据和字典对象 |
选择 SYS.ARGUMENT$ |
访问过程和函数参数信息 |
暂存数据库特权
在 Azure Database for PostgreSQL 灵活服务器(临时数据库)上需要以下权限:
| 权限 | Purpose |
|---|---|
| 创建架构 | 创建验证架构 |
| 在数据库上创建 | 创建数据库对象以进行验证 |
| GRANT CONNECT ON DATABASE | 验证过程的连接权限 |
网络要求
- 出站连接:Microsoft Foundry 终结点。
- 数据库连接:源数据库为 Oracle,目标数据库为 Azure Database for PostgreSQL 灵活服务器。
- HTTPS 访问权限:Visual Studio Code 扩展市场和 GitHub Copilot 服务。
- GitHub存储库访问:https://github.com/microsoft/pgsql-tools/。
Oracle 即时客户端(用于厚客户端模式)
默认情况下,架构转换工具使用精简客户端模式连接到 Oracle,这不需要额外的软件。 如果环境需要厚客户端模式,请在运行 Visual Studio Code 的计算机上安装 Oracle 即时客户端。 该工具会读取你的 sqlnet.ora 和 tnsnames.ora 配置,并在某项设置需要时自动切换到厚模式。
可以通过检查源环境中的 Oracle 网络配置文件来确定是否需要厚客户端模式。 在文件中查找以下参数 sqlnet.ora (通常位于 $ORACLE_HOME/network/admin/):
| 参数 | 指示需要厚模式 |
|---|---|
SQLNET.CRYPTO_CHECKSUM_CLIENT |
设置为 REQUIRED 或 REQUESTED 以启用本机网络加密 |
SQLNET.ENCRYPTION_CLIENT |
设置为 REQUIRED 或 REQUESTED 以启用本机网络加密 |
Microsoft Foundry 身份验证
为 Microsoft Foundry 配置以下身份验证方法之一:
| 身份验证方法 | Requirements |
|---|---|
| API 密钥 | Microsoft Foundry 终结点 URL 和 API 密钥。 |
| Microsoft Entra ID | 已登录 Azure Account 扩展,并在 Microsoft Foundry 资源上分配了 Foundry 用户角色(以前为 Azure AI 用户)。 |
迁移过程
本部分介绍完整的迁移工作流。 您需要安装 PostgreSQL 扩展,创建并测试到 Oracle 源和 Azure Database for PostgreSQL 目标的连接,打开并初始化迁移项目,配置 Microsoft Foundry 以进行架构转换,运行迁移向导以发现并转换架构,在临时数据库中验证已转换的对象,并在将生成的 PostgreSQL 项目构件应用到目标之前,查看或修复任何已标记的项。
步骤 1:安装 PostgreSQL Visual Studio Code 扩展
打开Visual Studio代码。
转到 “扩展 ”视图(
Ctrl+Shift+X)。搜索 PostgreSQL,并安装由 Microsoft 发布的 PostgreSQL 扩展。
步骤 2:创建 Azure Database for PostgreSQL 的连接
步骤 3:打开新工作区
步骤 4:初始化迁移项目
步骤 5:配置项目设置
步骤 6:配置 Oracle 连接
输入 Oracle 连接详细信息:
- 主机或服务器名称。
- 端口号。
- 数据库或服务名称。
- 用户名和密码。
该工具会根据你的
sqlnet.ora和tnsnames.ora设置自动选择瘦客户端或胖客户端模式;用户界面不提供手动选择器。 默认情况下使用精简模式。 如果您的sqlnet.ora需要使用厚模式,请确保已安装 Oracle Instant Client,并且其所在位置已添加到PATH环境变量中,然后再继续操作。 有关详细信息,请参阅 Oracle 即时客户端。选择 加载架构。 该工具测试 Oracle 连接,如果成功,则列出 Oracle 中可用的所有用户定义架构。
选择要转换为 PostgreSQL 的一个或多个架构。
选择下一步继续操作。
步骤 7:配置 Azure Database for PostgreSQL 临时数据库
步骤 8:配置 Microsoft Foundry 语言模型
输入 Microsoft Foundry 详细信息:
- 终结点 URL。
- 部署名称(在 Microsoft Foundry 中分配给部署的名称;基础模型必须
gpt-5.2)。
选择 身份验证方法:
- API 密钥:输入 Microsoft Foundry 部署的 API 密钥。
- Microsoft Entra ID:使用 Azure 帐户扩展登录。 该工具会自动获取身份验证令牌。 确保已登录的标识在 Microsoft Foundry 资源上具有 Foundry 用户角色(以前为 Azure AI 用户)。 有关详细信息,请参阅 Microsoft Foundry 的基于角色的访问控制。
选择 “测试连接 ”以验证配置。
连接成功后,选择“创建迁移Project。
步骤 9:运行架构转换
步骤 10:查看架构转换报告
- 架构转换完成后,该工具将生成 架构转换报告。
- 查看已成功转换的对象和跳过的对象。
- 报告显示转换的成功百分比。
步骤 11:查看和优化转换任务
- 架构转换完成后,该工具将为需要注意的对象创建 评审任务 。
- 使用 GitHub Copilot 智能体 模式解析任务,或手动将架构转换为 PostgreSQL。
- 比较上一个和新转换的架构转换语句。
- 有关任务优先级、生成的 SQL 文件和输出文件夹的详细信息,请参阅查看 Oracle 的任务和输出文件夹,以Azure Database for PostgreSQL灵活的服务器架构转换。
步骤 12:在部署之前验证转换的对象
- 独立验证非生产环境中所有转换的对象。
- 确认依赖项、约束和代表性工作负荷的行为与预期相同。
- 查看所有审阅任务的解决方案,并在更改后重新测试。
Important
客户验证责任:用于架构转换的相同 AI 引擎也有助于验证和审查。 AI 系统偶尔可以确认自己的错误。 若要防止数据丢失、功能回归或安全问题,请在部署到生产环境之前独立验证所有转换的对象和审阅任务解决方案。 作为控件的一部分,请考虑启用 Microsoft Foundry 内容筛选来帮助减少有害或不需要的输出。 有关指南,请参阅 Microsoft Foundry 模型的content 筛选。
有关Visual Studio Code扩展的详细信息,请访问适用于 Visual Studio Code 和 Cursor 的 PostgreSQL 扩展。