16.4.1.23 复制和分区

只要分区 table 使用相同的分区方案,并且在其他结构上具有相同的结构(除非特别允许 exception)(请参见第 16.4.1.10 节,“在源和副本上使用不同的 table 定义进行复制”),就支持在分区 table 之间进行复制。

通常不支持在具有不同分区的 table 之间进行复制。这是因为在这种情况下直接作用于分区的语句(例如ALTER TABLE ... DROP 分区)可能在源和副本上产生不同的结果。如果在源上而不是副本上对 table 进行分区,则在副本的源副本上对分区进行操作的任何语句都将失败。当对 table 的副本的副本进行分区但对源副本的副本未分区时,作用在分区上的语句无法在源上运行而不会在源上引起错误。

由于存在导致复制完全失败(由于失败的语句)和不一致(当分区级 SQL 语句的结果在源和副本上产生不同结果时)的危险,我们建议确保对任何 table 进行分区要从源复制的副本与这些 table 的副本版本匹配。