为转换准备来源

本页介绍了如何使用 Ora2Pg 迁移工具在旧版转换工作区中准备源数据库架构以进行转换。

Oracle 和 PostgreSQL 使用不同的 SQL 方言和数据类型来定义它们包含的对象和数据类型。在这些 SQL 引擎之间迁移时,您需要将 Oracle 架构和代码转换为与 PostgreSQL 兼容的架构和代码。

在 Database Migration Service 中,您可以通过以下两种方式进行源代码转换:

  • (推荐)将转化工作区与内置转化编辑器搭配使用。

    在此方法中,架构转换是自动进行的,所有操作都直接在 Database Migration Service 中完成。如果您选择使用此方法,则无需进行额外的准备(除了添加相关的连接信息之外)。继续前往配置 Cloud SQL for PostgreSQL 目标数据库部分。

  • 将旧版转换工作区与 Ora2Pg 转换工具搭配使用。

    如果您想在 Database Migration Service 之外运行转换流程,此方法会很有用。请先执行使用 Ora2Pg 进行架构转换部分中的所有步骤,然后再创建转换工作区。

使用 Ora2Pg 进行架构转换

在设置转化工作区之前,请执行以下操作:

  1. 配置 Ora2Pg 文件。如需了解详情,请参阅 Ora2Pg 文档的配置部分。
  2. 使用 Ora2Pg 生成可加载到 Cloud SQL for PostgreSQL 目标数据库的 SQL 脚本。如需了解详情,请参阅 Ora2Pg 文档的安装部分。
  3. 在 Cloud SQL for PostgreSQL 数据库上运行 SQL 脚本。这将在该数据库上创建架构。

完成这些步骤后, 创建一个包含您配置的 Ora2Pg 文件的转换工作区。Database Migration Service 会使用此文件在 Oracle 源数据库和 Cloud SQL for PostgreSQL 目标数据库之间创建表映射。这些表映射用于确保 Database Migration Service 将数据正确地从来源加载到目标位置。

使用 Ora2Pg 指令

Database Migration Service 在 Ora2Pg 配置文件中使用以下指令:

  • BOOLEAN_VALUES
  • DATA_TYPE
  • DEFAULT_NUMERIC
  • ENABLE_MICROSECOND
  • EXPORT_SCHEMA
  • MODIFY_STRUCT
  • MODIFY_TYPE
  • PG_INTEGER_TYPE
  • PG_NUMERIC_TYPE
  • PG_SCHEMA
  • PRESERVE_CASE
  • REPLACE_AS_BOOLEAN
  • REPLACE_COLS
  • REPLACE_TABLES
  • SCHEMA

由于 Database Migration Service 使用连接配置文件来定义连接详细信息,因此您无需在 Or2Pg 配置文件中定义以下指令:

  • ORACLE_DSN
  • ORACLE_HOME
  • ORACLE_PWD
  • ORACLE_USER
  • PG_DSN
  • PG_PWD
  • PG_USER

此外,Database Migration Service 不会使用 WHERE 配置指令来限制要迁移的记录。

如需详细了解 Ora2Pg 配置指令,请参阅 Ora2Pg 文档的配置部分。

使用没有主键的表

对于没有主键的表,数据操纵语言 UPDATEDELETE 语句可能会导致重复记录,因为 Database Migration Service 无法跟踪已更改哪一行。如需了解如何迁移源数据库中没有主键的表,请参阅迁移没有主键的表