oracle分区范围修改与数据迁移处理

背景

由于对应用上线后流量越来越大,原来的按年自动分区性能跟不上,因此决定改成按月自动分区,同时将原有分区数据重新迁移到新的分区

步骤

  • 修改表分区为一个月一个分区
alter table my_table set INTERVAL (NUMTOYMINTERVAL(1, 'month'));
  • 找到原分区将原分区数据按月拆分为新的分区
alter table my_table split PARTITION my_table_001 at (TO_DATE('2023-10', 'SYYYY-MM')) into (partition my_table_0001, partition my_table_001);
alter table my_table split PARTITION my_table_001 at (TO_DATE('2023-11', 'SYYYY-MM')) into (partition my_table_0002, partition my_table_001);
alter table my_table split PARTITION my_table_001 at (TO_DATE('2023-12', 'SYYYY-MM')) into (partition my_table_0003, partition my_table_001);
alter table my_table split PARTITION my_table_001 at (TO_DATE('2024-01', 'SYYYY-MM')) into (partition my_table_0004, partition my_table_001);
  • 执行完成后查看现有分区情况
SELECT * FROM USER_TAB_PARTITIONS WHERE TABLE_NAME = 'MY_TABLE';
  • 删除原有分区
ALTER table my_table DROP PARTITION my_table_001;
  • 查看全部索引
SELECT * from user_indexes WHERE table_name = 'MY_TABLE';
  • 重建主键索引
ALTER index SYS_C0011986 rebuild;
  • 重建全局唯一索引
ALTER index uk_xxx rebuild;
  • 插入数据测试即完成

相关推荐

  1. oracle分区范围修改数据迁移处理

    2024-01-30 14:32:02       58 阅读
  2. oracle数据迁移到mysql

    2024-01-30 14:32:02       65 阅读
  3. Oracle 到 MySQL 数据库迁移

    2024-01-30 14:32:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 14:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 14:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 14:32:02       87 阅读
  4. Python语言-面向对象

    2024-01-30 14:32:02       96 阅读

热门阅读

  1. 数据结构-排序

    2024-01-30 14:32:02       70 阅读
  2. 消息队列和Kafka

    2024-01-30 14:32:02       48 阅读
  3. Spring 注解详情

    2024-01-30 14:32:02       69 阅读
  4. 学fpga和还是嵌入式?

    2024-01-30 14:32:02       58 阅读
  5. Chrome 121 释出

    2024-01-30 14:32:02       64 阅读
  6. 数据中心电气工程师进阶之路

    2024-01-30 14:32:02       57 阅读