本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
大型二进制对象 (LOBs) 有时可能很难在系统之间迁移。 AWS DMS 提供了许多选项来帮助调整 LOB 列。要了解何时考虑 LOBs 哪些数据类型 AWS DMS,请参阅 AWS DMS 文档。
当您将数据从一个数据库迁移到另一个数据库时,您可能会借此机会重新考虑您的 LOBs 存储方式,尤其是对于异构迁移。如果您需要这样做,则无需迁移 LOB 数据。
如果您决定包含 LOBs,则可以决定其他 LOB 设置:
-
LOB 模式决定如何 LOBs 处理:
-
完整 LOB 模式 — 在完整 LOB 模式下,无论大小如何,都会将所有 LOBs 内容从源 AWS DMS 迁移到目标。在此配置中, AWS DMS 没有关于预期的最大 LOBs 大小的信息。因此 LOBs ,逐个迁移。完整 LOB 模式下的速度非常慢。
-
受限 LOB 模式 – 在受限 LOB 模式下,您设置 DMS 接受的最大 LOB 大小。这使得 DMS 能够预先分配内存并批量加载 LOB 数据。 LOBs超过最大 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 大小。 LOBs 小于指定大小的将以内联方式传输。 LOBs 大于指定大小的将使用完整 LOB 模式进行复制。 LOBs 当大多数都很小时,您可以选择此选项来同时复制 LOBs 大小和大小。对于不支持完整 LOB 模式的端点,例如 S3 和 Redshift,DMS 不支持内联 LOB 模式。
注意
在 Oracle 中,只要 LOBs 有可能,就会被视为 VARCHAR 数据类型。这种方法意味着从数据库中批量 AWS DMS 获取它们,这比其他方法快得多。Oracle 中的 VARCHAR 的最大大小为 32 K。因此,当 Oracle 为源数据库时,小于 32 K 的受限 LOB 大小最佳。
-
-
如果将任务配置为在受限 LOB 模式下运行,Max LOB size (K) (最大 LOB 大小 (K)) 选项设置 AWS DMS 接受的最大大小 LOB。任何 LOBs 大于此值的值都将被截断为该值。
-
将任务配置为使用完整 LOB 模式时,将分 AWS DMS 段检索 LOBs 。LOB 块大小 (K) 选项确定每个分段的大小。在设置该选项时,请特别注意网络配置允许的最大包大小。如果 LOB 块大小超出允许的最大包大小,则可能会看到连接断开错误。
LobChunkSize
的建议值为 64 KB。将LobChunkSize
的值增加到 64 KB 以上可能会导致任务失败。 -
将任务配置为在内联 LOB 模式下运行时,该
InlineLobMaxSize
设置将决定哪个 LOBs DMS 以内联方式传输。注意
您只能将 LOB 数据类型用于包含主键的表或视图。
有关指定这些选项的任务设置的信息,请参阅目标元数据任务设置