问题描述,时间是2023-12-01
某日,运维组同时反馈,服务报错了,截图中包含如下错误日志:
0RA-14400: 插入的分区关键字未映射到任何分区
第一反应就是:应该是分区过期,于是指导运维进行如下步骤排查,确实如此
查询哪些表做了分区
SELECT * FROM USER_TAB_PARTITIONS
查出所有做了分区的表名称
SELECT DISTINCT TABLE_NAME FROM USER_TAB_PARTITIONS
查看分区表名称及其对应表空间名称
SELECT DISTINCT TABLE_NAME,TABLESPACE_NAME FROM USER_TAB_PARTITIONS
查询指定表是否建了分区
SELECT * FROM USER_TAB_PARTITIONS WHERE TABLE_NAME=‘KPGL_XXFP’
查询指定表分区情况
SELECT * FROM USER_TAB_PARTITIONS WHERE TABLE_NAME=‘KPGL_XXFP’ ORDER BY partition_name DESC
以此判断是否是手动分区,确认是否需要扩展分区,做到这一步,确认了最大分区是p2312,less than 2023-12-01,确认是分区不够,需要扩展分区。
扩建分区脚本
ALTER TABLE “表名称” ADD PARTITION “分区名称” VALUES LESS THAN (TO_DATE(‘2024-02-01 00:00:00’, ‘SYYYY-MM-DD HH24:MI:SS’, ‘NLS_CALENDAR=GREGORIAN’)) TABLESPACE “表空间名称”;