旧版转换工作区是一种功能较为有限的旧版转换工作区。旧版转换工作区不支持 Gemini 增强型转换功能或交互式 SQL 编辑器。您只能使用它们通过 Ora2Pg 迁移工具转换源架构。
我们不建议您在迁移时使用旧版转化工作区,因为它们会对转化工作流造成多种其他限制:
互动式转化工作区 | 旧版转换工作区 |
---|---|
架构和代码对象转换在 Database Migration Service 中进行。 | 您可以使用 Ora2Pg 迁移工具在 Database Migration Service 之外执行架构和代码对象转换。 |
您可以在 Database Migration Service 中直接将转换后的源应用于目标数据库。 | 您负责将转换后的架构应用于 Cloud SQL for PostgreSQL 目标实例中的目标数据库。 |
您可以直接在 Database Migration Service 中测试草稿架构和代码,确保它们可以成功应用于目标实例。 | 您无法在不影响目标实例的情况下测试草稿架构和代码。 |
自动为没有主键的表添加缺少的 rowid 列。 |
应用架构后,您必须向目标表添加缺少的主键。 |
使用旧版转换工作区
如果您的场景需要使用旧版转化工作区,请执行以下操作来修改迁移流程:
编写 Ora2Pg 配置文件。
如需有关如何使用 Ora2Pg 转换工具的指导,请参阅 Ora2Pg 文档。展开即可下部分,查看 Database Migration Service 支持的完整指令列表。
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
REPLACE_ZERO_DATE
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 配置并创建工作区后,您必须直接在目标数据库上自行应用生成的代码。
迁移没有主键的表。
Database Migration Service 仅迁移具有主键的表。 如果源数据库包含没有主键的表,则您需要在应用转换后的架构后,在目标数据库的转换表中手动创建主键约束条件。如需了解详情,请展开即可下部分。
在目标数据库中添加主键约束条件
如需迁移没有主键的 Oracle 表,请执行以下操作:
- 使用 SQL 客户端连接到目标 Cloud SQL 实例。您可以使用以下方法:
-
psql
客户端。您可以使用此方法连接到实例专用 IP,但可能需要创建 Compute Engine 虚拟机。 -
gcloud sql connect
命令。此命令仅适用于启用了公共 IP 地址的 Cloud SQL 实例。
-
- 为表创建缺少的主键约束条件。如需详细了解主键,请参阅 PostgreSQL 文档中的
主键。
您还可以展开即可下部分,查看 SQL 命令示例:
使用现有列创建主键
您的表可能已经具有基于列或列组合的逻辑主键。例如,可能存在配置了唯一性约束条件或索引的列。使用这些列为源数据库中的表生成新的主键。例如:
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME);
使用所有列创建主键
如果您没有可用作主键的现有约束条件,请使用表中的所有列创建主键。确保主键的长度不超过 PostgreSQL 实例允许的上限。例如:
ALTER TABLE TABLE_NAME ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);
创建这样的复合主键时,您需要明确列出要使用的所有列名称。为此目的,无法使用语句检索所有列名称。
- 使用 SQL 客户端连接到目标 Cloud SQL 实例。您可以使用以下方法:
后续步骤
使用旧版工作区执行转换工作流后,您可以继续执行标准迁移流程。请参阅 创建迁移作业。