创建转换工作区并转换架构

本页面介绍了如何创建转换工作区,并使用该工作区立即执行从 Oracle 到 PostgreSQL 的确定性代码和架构转换。

您可以通过以下两种方式创建交互式转换工作区:

  • 通过直接数据库连接:Database Migration Service 通过连接配置文件直接连接到正在运行的源数据库,并通过网络连接检索架构。

  • 使用 Cloud Storage 中的架构文件:您可以使用 Google 提供的提取脚本在本地提取架构元数据,将生成的文件上传到 Cloud Storage 存储桶,并在不连接到源数据库的情况下准备工作区。

直接连接到源数据库

您可以使用 Database Migration Service 直接连接到源数据库,从而创建交互式转换工作区并执行架构转换。 在以这种方式创建工作区之前,请确保 为源数据库创建连接配置文件。

直接连接方法所需的角色

如需获得创建转换工作区所需的权限,请让管理员向您授予项目的 Database Migration Admin (roles/datamigration.admin) IAM 角色。

如需详细了解如何授予角色,请参阅 Identity and Access Management 文档中的 管理访问权限。

此预定义角色包含在 Database Migration Service 中创建转换工作区所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

您需要具备以下权限才能在 Database Migration Service 中创建转换工作区:

  • cloudaicompanion.entitlements.get

    roles/datamigration.admin 角色拥有此权限。 Gemini 增强型转化功能需要此权限。

  • datamigration.conversionworkspaces.apply
  • datamigration.conversionworkspaces.commit
  • datamigration.conversionworkspaces.convert
  • datamigration.conversionworkspaces.create
  • datamigration.conversionworkspaces.delete
  • datamigration.conversionworkspaces.get
  • datamigration.conversionworkspaces.getIamPolicy
  • datamigration.conversionworkspaces.list
  • datamigration.conversionworkspaces.rollback
  • datamigration.conversionworkspaces.seed
  • datamigration.conversionworkspaces.setIamPolicy
  • datamigration.conversionworkspaces.update

您也可以使用 自定义角色或其他 预定义角色来获取这些权限。

使用连接配置文件创建转换工作区

如需创建转换工作区,让 Database Migration Service 连接到源数据库并准备源数据库对象的初始快照,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往转换工作区。

    前往转换工作区

  2. 点击设置工作区。
  3. 在创建转换工作区页面上,执行以下操作:
    1. 输入转换工作区的名称、标识符和区域。
    2. 从源数据库引擎下拉菜单中,选择 Oracle。
    3. 从目标数据库引擎中,选择 Cloud SQL for PostgreSQL。
    4. 在为您的工作区启用 Gemini 设置部分中,使用复选框启用由 Gemini 提供支持的转换功能。您也可以稍后在想要 借助 Gemini 转换代码和架构时启用这些功能。

      由 Gemini 提供支持的转换功能需要使用 Gemini for Google Cloud API。如需了解详情,请参阅 由 Gemini 赋能的转换功能。

    5. 点击创建工作区并继续。
  4. 在定义来源和拉取架构快照页面上,执行以下操作:
    1. 在来源连接方法部分中,选择连接配置文件。
    2. 从来源连接配置文件下拉菜单中,选择源数据库的连接配置文件。
    3. 点击拉取架构快照并继续。

    Database Migration Service 正在连接到源数据库并检索您的架构。 此过程可能需要几分钟时间。

  5. 在选择并转换对象页面上,使用复选框选择要转换为 PostgreSQL 语法的对象。

    您不必一次性转换所有对象。您可以先选择几个对象,稍后再 向转换添加更多对象。

  6. 点击转换并继续。

    转换工作区随即打开。

  7. 首次打开新工作区时,您可以升级该工作区,以使用由 Gemini 提供支持的自动转换功能。 执行以下操作:
    • 在推出 Gemini 自动转换功能对话框中,选中升级工作区以探索新体验复选框,然后点击继续。
    • 在要使用 Gemini 转换源对象吗?对话框中,点击转换。

      Database Migration Service 现在会再次执行转换过程,在确定性转换结果的基础上应用由 Gemini 提供支持的转换增强功能。如需详细了解 Gemini 自动转换功能,请参阅 Gemini 自动转换。

使用存储在 Cloud Storage 中的架构文件

您可以使用 Google 提供的提取脚本在本地提取架构元数据,将生成的文件上传到 Cloud Storage 存储桶,并准备工作区,而无需连接到源数据库。

在 Cloud Storage 中使用架构文件所需的角色

如需获得使用存储在 Cloud Storage 中的架构文件创建转换工作区所需的权限,请让管理员为 迁移过程中涉及的以下账号授予项目的所需 IAM 角色:

  • 创建转换工作区的用户账号: Database Migration Admin (roles/datamigration.admin)
  • Database Migration Service 服务账号:存储架构文件的 Cloud Storage 存储桶上的 Storage Object Viewer (roles/storage.objectViewer) 角色。

    Database Migration Service 服务账号的邮箱采用以下格式:service-PROJECT_NUMBER@gcp-sa-datamigration.。将 PROJECT_NUMBER 替换为您的 Google Cloud 项目编号。 如需详细了解此服务账号,请参阅 Database Migration Service 服务账号。

如需详细了解如何授予角色,请参阅 Identity and Access Management 文档中的 管理访问权限。

roles/datamigration.admin 预定义角色包含在 Database Migration Service 中创建转换工作区所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

您需要具备以下权限才能在 Database Migration Service 中创建转换工作区:

  • cloudaicompanion.entitlements.get

    roles/datamigration.admin 角色拥有此权限。 Gemini 增强型转化功能需要此权限。

  • datamigration.conversionworkspaces.apply
  • datamigration.conversionworkspaces.commit
  • datamigration.conversionworkspaces.convert
  • datamigration.conversionworkspaces.create
  • datamigration.conversionworkspaces.delete
  • datamigration.conversionworkspaces.get
  • datamigration.conversionworkspaces.getIamPolicy
  • datamigration.conversionworkspaces.list
  • datamigration.conversionworkspaces.rollback
  • datamigration.conversionworkspaces.seed
  • datamigration.conversionworkspaces.setIamPolicy
  • datamigration.conversionworkspaces.update

您也可以使用 自定义角色或其他 预定义角色来获取这些权限。

使用架构文件创建转换工作区

如需使用架构文件创建转换工作区,请按照以下步骤操作。

  1. 从 Google Cloud 控制台检索 Python 脚本。请按以下步骤操作:
    1. 在 Google Cloud 控制台中,前往转换工作区。

      前往转换工作区

    2. 点击设置工作区。
    3. 在创建转换工作区页面上:
      1. 输入工作区名称、标识符和区域。
      2. 从源数据库引擎下拉菜单中,选择 Oracle。
      3. 从目标数据库引擎下拉菜单中,选择 Cloud SQL for PostgreSQL。
      4. 在为您的工作区启用 Gemini 设置部分中,使用复选框启用由 Gemini 提供支持的转换功能,然后点击继续。

        您也可以稍后在想要 借助 Gemini 转换代码和架构时启用这些功能。 由 Gemini 提供支持的转换功能需要使用 Gemini for Google Cloud API。如需了解详情,请参阅 由 Gemini 赋能的转换功能。

    4. 在定义来源和拉取架构快照页面上的来源连接方法部分中,选择 Cloud Storage。
    5. 在选择文件夹之前部分中,点击 Oracle 元数据提取器标题旁边的打开。 按照侧边栏中的说明下载并针对源数据库运行提取实用程序,以生成架构元数据 JSON 文件。此实用程序要求您能够与源数据库建立网络连接。
  2. 创建一个专用的 Cloud Storage 存储桶,用于上传架构元数据 JSON 文件。如需详细了解如何创建 Cloud Storage 存储桶,请参阅 Cloud Storage 文档中的 创建存储桶。
  3. 在专用 Cloud Storage 存储桶中,为您在前面步骤中导出的数据库架构文件创建一个空的专用文件夹。如需详细了解如何创建 Cloud Storage 文件夹,请参阅 Cloud Storage 文档中的 创建和管理文件夹。
  4. 仅将您在前面的步骤中使用从 Google Cloud 控制台检索到的 Python 脚本创建的元数据 JSON 架构文件上传到 Cloud Storage 存储桶中的空专用数据库文件夹。
  5. 继续在 Google Cloud 控制台中创建工作区,或使用 Google Cloud CLI 创建新工作区。

    控制台

    1. 将提取的架构元数据文件上传到 Cloud Storage 存储桶后,请继续在定义来源并拉取架构快照页面上操作。
    2. 在文件夹字段中,点击浏览,然后选择包含架构文件的文件夹。
    3. 点击拉取架构快照并继续。

      Database Migration Service 现在会解析存储桶中的架构元数据。

    4. 在选择并转换对象页面上,选择要转换的对象,然后点击转换并继续。

    gcloud

    将提取的架构元数据文件上传到 Cloud Storage 存储桶后,您可以使用 Google Cloud CLI 创建并初始化新的工作区。 请按以下步骤操作:

    1. 创建空白转换工作区。
      运行以下命令(点击可展开):

      gcloud database-migration conversion-workspaces create

        gcloud database-migration conversion-workspaces create WORKSPACE_ID \
            --region=REGION \
            --source-database-engine=ORACLE \
            --destination-database-engine=POSTGRESQL

      替换以下内容:

      • WORKSPACE_ID:替换为转换工作区的标识符。
      • REGION:要在其中创建工作区的区域。
    2. 使用 Cloud Storage 中的架构文件初始化工作区。
      如需解析存储桶中存储的架构元数据文件并将其加载到转换工作区中,请运行以下命令(点击可展开):

      gcloud database-migration conversion-workspaces seed

        gcloud database-migration conversion-workspaces seed WORKSPACE_ID \
            --region=REGION \
            --gcs-path=gs://BUCKET_NAME/PREFIX/

      替换以下内容:

      • WORKSPACE_ID:替换为转换工作区的标识符。
      • REGION:要在其中创建工作区的区域。
      • BUCKET_NAME:包含架构文件的 Cloud Storage 存储桶的名称。
      • PREFIX:包含提取的架构元数据文件的文件夹的路径。

旧版转换工作区

旧版转换工作区是一种较旧、功能更有限的转换工作区。我们不建议您在迁移中使用旧版转换工作区。如果您需要使用旧版转换工作区,请展开创建旧版转换工作区并转换架构部分,了解详情。

创建旧版转换工作区并转换架构

旧版转换工作区使用 Ora2Pg 配置文件。 在创建旧版转换工作区之前,请务必先在 Database Migration Service 之外创建 Ora2Pg 配置。如需了解详情,请参阅 使用旧版转换工作区。

  1. 在 Google Cloud 控制台中,前往转换工作区。

    前往转换工作区

  2. 点击设置工作区。
  3. 在创建转换工作区页面上,执行以下操作:
    1. 输入转换工作区的名称、标识符和区域。
    2. 从源数据库引擎下拉菜单中,选择 Oracle。
    3. 从目标数据库引擎中,选择 Cloud SQL for PostgreSQL。
    4. 展开自定义工作区配置部分,然后选中启用旧版转换工作区复选框。
    5. 点击创建工作区并继续。
  4. 在连接到来源并转换对象页面上,执行以下操作:
    1. 从来源连接配置文件下拉菜单中,选择源数据库的连接配置文件。
    2. 在配置文件框中,点击浏览,然后使用系统文件选择器选择转化映射文件。

      您可以点击添加文件,上传多个转化映射文件。

    3. 在转换配置部分中,点击拉取架构并转换。

      Database Migration Service 正在连接到源数据库,检索您的架构,并根据转换映射文件中定义的规则将其转换为目标 SQL 架构。此过程可能需要几分钟时间。

  5. 点击保存并关闭。

    系统会打开转换工作区详情页面。

现在,您可以将转换后的架构应用于目标数据库。如果源数据库包含没有主键的表,您还需要在应用转换后的架构后,在目标数据库中转换后的表中手动创建主键约束。 如需了解详情,请参阅 使用旧版转换工作区。

后续步骤

现在,您可以使用转换工作区来解决转换问题、使用交互式编辑器修改对象,以及将转换后的架构应用于目标数据库。请参阅 将 Oracle 代码和架构转换为 PostgreSQL 语法。