202103-Oracle分区告警处理

 

项目背景

历史数据备份或者删除,一般是转移到历史表,然后通过定时任务定期的删除数据,如果采用delete会出现脏读脏写,用truncate还不一定符合业务的要求,于是采用了创建分区的方式进行数据的转移,以及最后的数据删除

 

创建分区语句

create table tTestPartition

(

id varchar2(32) not null ,

create_time date

)

partition by range (create_time)

(pratition part_202103 values less than(to_date('2021-03','yyyy-mm'))),

partition P_MAXVAL value less than(MAXVALUE)

 

把分区数据迁移到目标表

alter talbe ${tablename} exchange PARTITION ${partitionName} with table ${tablename}

切割P_MAXVAL分为2个分区

alter ${tablename} split partition P_MAXVAL at ('2021-03') into (partition ${partitionName},partiton p_MAXVAL)

删除指定表的指定分区

alter table ${tablename} drop partition ${partitionName}

 

生成告警

每次删除分区后都提示有索引失效

 

解决方式

1.不创建全局索引,索引默认都是全局,默认创建加上local

2.注意主键是全局索引,可以修改为local并且创建一个唯一索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值