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

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

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

有时,大型二进制对象 (LOB) 难以在系统之间迁移。Amazon DMS 提供了大量选项来帮助优化 LOB 列。要查看 Amazon DMS 在何时将哪些数据类型视为 LOB,请参阅 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 KB。将 LobChunkSize 的值增加到 64 KB 以上可能会导致任务失败。

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

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