本页介绍了如何使用 Ora2Pg 迁移工具在旧版转换工作区中准备源数据库架构以进行转换。
Oracle 和 PostgreSQL 使用不同的 SQL 方言和数据类型来定义它们包含的对象和数据类型。在这些 SQL 引擎之间迁移时,您需要将 Oracle 架构和代码转换为与 PostgreSQL 兼容的架构和代码。
在 Database Migration Service 中,您可以通过以下两种方式进行源代码转换:
(推荐)将转化工作区与内置转化编辑器搭配使用。
在此方法中,架构转换是自动进行的,所有操作都直接在 Database Migration Service 中完成。如果您选择使用此方法,则无需进行额外的准备(除了添加相关的连接信息之外)。继续前往配置 AlloyDB for PostgreSQL 目标数据库部分。
将旧版转换工作区与 Ora2Pg 转换工具搭配使用。
如果您想在 Database Migration Service 之外运行转换流程,此方法会很有用。请先执行使用 Ora2Pg 进行架构转换部分中的所有步骤,然后再创建转换工作区。
使用 Ora2Pg 进行架构转换
在设置转化工作区之前,请执行以下操作:
- 配置 Ora2Pg 文件。如需了解详情,请参阅 Ora2Pg 文档的配置部分。
- 使用 Ora2Pg 生成可加载到 AlloyDB for PostgreSQL 目标数据库的 SQL 脚本。如需了解详情,请参阅 Ora2Pg 文档的安装部分。
- 在 AlloyDB for PostgreSQL 数据库上运行 SQL 脚本。这将在该数据库上创建架构。
完成这些步骤后, 创建一个包含您配置的 Ora2Pg 文件的转换工作区。Database Migration Service 会使用此文件在 Oracle 源数据库和 AlloyDB 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 文档的配置部分。
使用没有主键的表
对于没有主键的表,数据操纵语言 UPDATE
和 DELETE
语句可能会导致重复记录,因为 Database Migration Service 无法跟踪已更改哪一行。如需了解如何迁移源数据库中没有主键的表,请参阅迁移没有主键的表。