开发者社区> 问答> 正文

PolarDB分区表历史分区的数据迁移到该库的另一张新分区表如何操作

已解决

PolarDB分区表历史分区的数据迁移到该库的另一张新分区表如何操作

展开
收起
提个问题! 2024-06-01 19:04:05 18 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    1、如果两个分区表的表结构相同, 新建分区表t2, 表结构与t1 一致(字段,索引相同), 包含分区p0,p1;
    可以如下操作:
    1)创建一个表结构相同的单表temp,
    2)单表temp 与分区表t1 的历史分区exchange partition; 这样历史分区的数据就会换入到单表;

    ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE temp;
    或者
    ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE temp WITHOUT VALIDATION;

    3)带有历史数据的单表temp与新分区表t2的目的分区p0 exchange partition, 这样就会把数据换入到新分区表。
    ALTER TABLE t2 EXCHANGE PARTITION p0 WITH TABLE temp;
    或者
    ALTER TABLE t2 EXCHANGE PARTITION p0 WITH TABLE temp WITHOUT VALIDATION;

    4)drop 单表。

    如果可以确定两个分区表需要交换的分区的数据范围是一样的,可以在exchange partition时带without validation的选项,执行会很快。
    5),后续如果还有分区由t1持续转到t2, 可以在t2表ADD PARTITION添加新的空分区,然后按照上述步骤操作。

    2、如果两个分区表的表结构不同,数据不一样,可以使用insert select 语法选择需要的数据插入到另外一张表。

    2024-06-01 19:04:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载