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

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

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

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

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

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

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

    • 完整 LOB 模式— 在完整 LOB 模式下Amazon DMS无论大小如何,都会将所有 LOB 从源迁移到目标。在此配置中,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 大小,必须设置ValidationPartialLobSize设置为与此设置相同的值LobMaxSize(K)。

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

    注意

    对于 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 KB 可能会导致任务失败。

  • 将任务配置为在内联 LOB 模式下运行时,InlineLobMaxSize设置决定了哪些 LOB DMS 以内联方式传输。

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