AWS Database Migration Service
分步迁移指南 (API 版本 2016-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 8:切换到 PostgreSQL

执行以下步骤以将连接从 Oracle 数据库移到 PostgreSQL 数据库。

切换到 PostgreSQL

  1. 结束所有 Oracle 数据库依赖项和活动,例如,运行的脚本和客户端连接。

    以下查询不会返回任何结果:

    SELECT MACHINE, COUNT FROM V$SESSION GROUP BY MACHINE;
  2. 列出并终止任何其余会话。

    SELECT SID, SERIAL#, STATUS FROM V$SESSION; ALTER SYSTEM KILL 'sid, serial_number' IMMEDIATE;
  3. 关闭 Oracle 数据库上的所有侦听器。

  4. 让 AWS DMS 任务在 PostgreSQL 数据库上应用 Oracle 数据库中的最终更改。

    ALTER SYSTEM CHECKPOINT;
  5. 在 AWS DMS 控制台中,为 AWS DMS 任务单击 Start/Resume (启动/恢复) 以停止该任务,然后确认您要停止该任务。

  6. (可选) 设置回滚。

    您可以选择创建一个按相反方向执行的任务以设置回滚任务,以防止遇到显示停止问题。由于应在两个数据库之间同步所有表,您只需要设置一个 CDC 任务。因此,您不必禁用任何外键约束。由于颠倒了源和目标数据库,您必须按照以下章节中的说明进行操作:

    1. 禁用源 Oracle 数据库上的触发器。

      SELECT 'ALTER TRIGGER' || owner || '.' || trigger_name || 'DISABLE;' FROM DBA_TRIGGERS WHERE OWNER = 'schema_name';

      您不必禁用外键约束。在 CDC 过程中,将按照与应用程序用户更新外键约束的相同顺序更新这些约束。

    2. 创建新的仅限 CDC 的 AWS DMS 任务并颠倒终端节点(源 PostgreSQL 终端节点和目标 Oracle 终端节点数据库)。请参阅步骤 7:创建并运行 AWS DMS 迁移任务

      对于回滚任务,请将迁移类型设置为仅复制数据更改,并将目标表准备模式设置为不执行任何操作

    3. 启动 AWS DMS 任务,以使您能够将更改从新 PostgreSQL 数据库推送回原始源 Oracle 数据库(如果需要回滚)。

  7. 连接到 PostgreSQL 数据库并启用触发器。

    ALTER TABLE table_name ENABLE TRIGGER ALL;
  8. 如果设置回滚,请完成回滚设置。

    1. 在新目标 PostgreSQL 数据库上启动应用程序服务 (包括脚本、客户端软件等)。

    2. 在新 PostgreSQL 数据库上添加 Cloudwatch 监控。请参阅监控 Amazon RDS