在 Amazon DMS 任务中为源数据库设置 LOB 支持 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon DMS 任务中为源数据库设置 LOB 支持

有时,大型二进制对象 (LOB) 难以在系统之间迁移。Amazon DMS 提供了大量选项来帮助优化 LOB 列。要了解哪些数据类型以及何时被视为 LOBAmazon DMS,请参阅Amazon DMS文档。

在将数据从一个数据库迁移到另一个数据库时,您可能有机会重新考虑 LOB 的存储方式,特别是异构迁移。如果您需要这样做,则无需迁移 LOB 数据。

如果决定包含 LOB,您可以确定其他 LOB 设置:

  • LOB 模式确定 LOB 的处理方式:

    • 完整 LOB 模式 — 在完整 LOB 模式下,将所有 LOB 从源Amazon DMS迁移到目标,无论大小如何。在此配置中,Amazon DMS 没有与预计的 LOB 的最大大小相关的信息。因此,逐个迁移 LOB,一次迁移一个。完全 LOB 模式下的速度非常慢。

    • 受限 LOB 模式 — 在受限 LOB 模式下,您可以设置 DMS 接受的最大 LOB 大小。这使得 DMS 能够预先分配内存并批量加载 LOB 数据。将截断超过最大 LOB 大小的 LOB,并将警告发布到日志文件中。在有限的 LOB 模式下,与完整 LOB 模式相比,您可以获得显著的性能。如果可能,建议您使用受限 LOB 模式。建议的最大值为 102400 KB (100 MB)。

      注意

      使用值大于 63KB 的 “最大 LOB 大小 (K)” 选项会影响配置为在受限 LOB 模式下运行的满负载的性能。在满载期间,DMS 通过将最大 LOB 大小 (k) 值乘以提交速率来分配内存,乘积乘以 LOB 列数。当 DMS 无法预先分配该内存时,DMS 开始消耗 SWAP 内存,这会影响满负荷的性能。因此,如果您在使用受限 LOB 模式时遇到性能问题,请考虑降低提交率,直到达到可接受的性能水平。了解表的 LOB 分布后,也可以考虑对支持的端点使用内联 LOB 模式。

    • 内联 LOB 模式 — 在内联 LOB 模式下,您可以设置 DMS 以内联方式传输的最大 LOB 大小。小于指定大小的 LOB 将以内联方式传输。使用完整 LOB 模式复制大于指定大小的 LOB。当大多数 LOB 都很小时,您可以选择此选项来复制小型 LOB 和大型 LOB。对于不支持 Full LOB 模式的端点,DMS 不支持内联 LOB 模式,例如 S3 和 Redshift。

    注意

    对于 Oracle,LOB 将被视为 VARCHAR 数据类型 (如果可能)。此方式意味着,Amazon DMS 将批量捕获数据库中的数据,速度大大快于其他方法。Oracle 中 VARCHAR 的最大大小为 32 K。因此,当 Oracle 是源数据库时,小于 32 K 的有限的 LOB 大小是最佳选择。

  • 如果将任务配置为在受限 LOB 模式下运行,Max LOB size (K) (最大 LOB 大小 (K)) 选项设置 Amazon DMS 接受的最大大小 LOB。大于该值的任何 LOB 将截断到该值。

  • 如果将任务配置为使用完全 Lob 模式,Amazon DMS 将分段检索 LOB。LOB 块大小 (K) 选项确定每个分段的大小。在设置该选项时,请特别注意网络配置允许的最大包大小。如果 LOB 块大小超出允许的最大包大小,则可能会看到连接断开错误。的推荐值LobChunkSize为 64 千字节。增加LobChunkSize超过 64 千字节的值可能会导致任务失败。

  • 当任务配置为以内联 LOB 模式运行时,该InlineLobMaxSize设置将确定 DMS 以内联方式传输哪些 LOB。

有关指定这些选项的任务设置的信息,请参阅目标元数据任务设置