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

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

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

有时,大型二进制对象 (LOB) 难以在系统之间迁移。Amazon DMS 提供了大量选项来帮助优化 LOB 列。要查看将哪些数据类型视为 LOB 以及执行此操作的时间Amazon 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 模式— 在内联 LOB 模式中,您可以设置 DMS 内联传输的最大 LOB 大小。小于指定大小的 LOB 将内联传输。大于指定大小的 LOB 将使用完整 LOB 模式复制。当大多数 LOB 较小时,您可以选择该选项以复制较小和较大 LOB。DMS 不支持不支持完全 LOB 模式(如 S3 和 Redshift)的终端节点的内联 LOB 模式。

    注意

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

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

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

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

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