使用 AWS DMS 将 Oracle 数据库迁移到目标 RDS for PostgreSQL 数据库的最佳实践是什么?

2 分钟阅读
0

我想将数据从 Oracle 源数据库迁移到 Amazon Relation Database Service (Amazon RDS) for PostgreSQL 目标数据库。使用 AWS Database Migration Services(AWS DMS)将数据从 Oracle 迁移到 PostgreSQL 时?

解决方法

从 Oracle 迁移到 PostgreSQL 数据库的最佳实践

  • 在开始迁移数据之前,请使用必要的先决条件配置 Oracle 源数据库。
  • 通过在任何其他 QA/DEV 数据库环境中使用相同的生产数据来测试迁移。根据结果,您可以继续进行生产迁移。请确保在测试和生产迁移中使用相同的 AWS DMS 配置。
  • 为您的 AWS DMS 实例预置足够的 CPU、内存、存储和 IOPS,以避免在迁移期间出现资源争用。有关更多信息,请参阅为迁移选择合适的 AWS DMS 复制实例为复制实例选择最佳大小。有关升级实例相关费用的更多信息,请参阅 AWS 数据库迁移服务定价。配置目标 Amazon RDS 实例时,请考虑相同的注意事项。
  • 如果源数据库包含大量表,且工作负载繁重,则将这些表拆分到多个 AWS DMS 任务中。根据表在源上的大小、应用程序流量模式以及是否存在 LOB 列来拆分表。如果表有很多 LOB 列,并且源上的写入流量很高,则为该表创建单独的任务。
  • 使用并行满负载以缩短繁重工作负载的迁移时间。有关更多信息,请参阅对选定的表、视图和集合使用并行负载
  • 迁移期间,关闭目标数据库上的备份和特定于数据库的日志(例如二进制、常规、审计和 PG 查询日志)。重新打开上述备份和日志以解决任何问题。
  • 迁移期间,关闭目标数据库上的触发器、流程、其他 cron 作业和事件计划程序。
  • 迁移期间,避免在目标 RDS 数据库上使用多可用区概念。
  • 迁移期间,请避免将任何其他外部客户端流量应用到目标数据库。
  • 开始复制的变更数据捕获(CDC)阶段之前,在目标数据库上添加任意二级索引。
  • 迁移前,关闭目标上的外键。使用目标额外连接属性(ECA)/端点设置来执行此操作。有关更多信息,请参阅将 PostgreSQL 数据库用作 AWS Database Migration Service 的目标
afterConnectScript=SET session_replication_role='replica'
  • 使用优化的 LOB 设置(如有限或内联 LOB)进行迁移。

  • 在使用批量应用 CDC 方法之前,使用默认事务 CDC 应用测试您的工作负载。有关更多信息,请参阅如何使用 DMS 批量应用功能来提高 CDC 复制性能?

  • 在目标端点设置中增加 executeTimeout 的值。此值设置 PostgreSQL 实例的客户端语句超时。默认值为 60 秒。

  • 如果要为 ID 列使用序列,则将目标上的值设置为高于源上的值。确保目标值在迁移割接日期仍高于源值。这种方法可防止迁移后序列 ID 发生冲突。

  • 若要增强满负载阶段的性能,请使用如下设置:

  • MaxFullLoadSubTasks – 默认值为 8,最大值为 49。此设置很有用,但请确保您有足够的可用资源。
  • CommitRate – 使用此设置来指示可以一起传输的最大记录数量。
  • 对于处于满负载阶段的完整 LOB 模式 – 源中的 N 行 = 目标中的 N 条插入 + N 个更新 = N 个事件,其中 CommitRate = N。
  • 对于处于满负载阶段的有限 LOB 模式 – 在 CSV 文件中写入 N 行,其中 CommitRate = N)。
  • 对于大型表,请增加 CSV 文件的大小。此操作由目标端点设置中的 maxFileSize 控制。

将 Oracle 数据库迁移到 PostgreSQL 数据库

注意:在继续执行这些步骤之前,请按照先决条件中的说明准备源 Oracle 数据库。

1.    在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool(AWS SCT)

2.    配置您的 Oracle 源数据库和 PostgreSQL 目标数据库。

3.    使用 AWS SCT 将 Oracle 架构转换为 PostgreSQL。

4.    创建 AWS DMS 复制实例。

5.    创建您的 AWS DMS 源端点和目标端点。

6.    创建并运行您的 AWS DMS 任务。

7.    在 Table mappings(表映射)下,应用转换规则。添加 rule-action 参数,其值为 convert-lowercase。默认情况下,Oracle 引擎以大写形式存储所有对象名称,但 PostgreSQL 以小写形式存储所有对象名称。

8.    创建满负载和 CDC AWS DMS 任务以复制您的数据。使用 StopTaskCachedChangesNotApplied 在满负载阶段完成后停止任务。现在,创建二级索引。

9.    切换到 PostgreSQL。


相关信息

将 Oracle 数据库迁移到 PostgreSQL

如何将您的 Oracle 数据库迁移到 PostgreSQL

AWS 官方
AWS 官方已更新 2 年前