在 AWS DMS 任务中设置对源数据库的LOB支持 - AWS Database Migration Service

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

在 AWS DMS 任务中设置对源数据库的LOB支持

大型二进制对象 (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)。

      注意

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

      要验证有限LOB的大小,必须ValidationPartialLobSize将其设置为与 LobMaxSize (K) 相同的值。

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

    注意

    在 Oracle LOBs 中,只要有可能,就会被视为VARCHAR数据类型。这种方法意味着从数据库中批量 AWS DMS 获取它们,这比其他方法快得多。VARCHAR在 Oracle 中,a 的最大大小为 32 K。因此,当 Oracle 作为源数据库时,最好将LOB大小限制为小于 32 K。

  • 将任务配置为在受限LOB模式下运行时,“最大LOB大小 (K)” 选项会设置可 AWS DMS 接受的最大大小LOB。任何LOBs大于此值的值都将被截断为该值。

  • 当任务配置为使用完整LOB模式时,将分LOBs段 AWS DMS 检索。LOB区块大小 (K) 选项决定每块的大小。在设置该选项时,请特别注意网络配置允许的最大包大小。如果LOB区块大小超过允许的最大数据包大小,您可能会看到断开连接错误。LobChunkSize 的建议值为 64 KB。将 LobChunkSize 的值增加到 64 KB 以上可能会导致任务失败。

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

    注意

    只能将LOB数据类型用于包含主键的表和视图。

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