Oracle分区数据问题的分析和修复

今天根据同事的反馈,处理了一个分区表的问题,也让我对Oracle的分区表功能有了进一步的理解。

首先根据开发同事的反馈,他们在程序批量插入一部分数据的时候,总是会有一部分请求执行失败,而查看日志就是ORA-14400的错误,对于这类问题,我有一个很直观的感觉,分区有问题。

  1. INSERT INTO DY_USER_ANALYSIS_MIN(ID,STAT_TIME,GAME_TYPE,ZONE_ID,GROUP_ID,ONLINE_5CNT) 
  2.     VALUES(100,to_date('2017-07-12 17:40:00','yyyy-mm-dd HH24:mi:ss'),'pz',to_number(-1),to_number(-1),to_number(0)); 
  3. INSERT INTO DY_USER_ANALYSIS_MIN(ID,STAT_TIME,GAME_TYPE,ZONE_ID,GROUP_ID,ONLINE_5CNT) 
  4.             * 
  5. ERROR at line 1: 
  6. ORA-14400: inserted partition key does not map to any partition 

而如果把‘pz’修改为另外一个字符串’dhsh’就没问题。

所以这样一个ORA问题,通过初始信息我得到一个基本的推论,那就是没有符合条件的分区了。而如果仔细分析,会发现这个问题似乎有些蹊跷。

一般的分区表都是Range分区,基本就是数值范围或者是日期来做范围分区,这个问题该怎么理解呢,如果按照时间分区,那么另外一个SQL插入也应该失败才对。

所以带着疑惑,我查看了分区的情况,发现这个表竟然有默认键值maxvlue的分区,所以如果说指定的Range分区不存在,似乎有些说不通。

这个问题该如果解决呢,一个直观的地方就是查看表的DDL,dbms_metadata.get_ddl即可得到。

得到的DDL一看,我就有些懵了,开发同学怎么知道这个list分区,竟然已经用上了这个还算高级的特性吧,就是Range-list分区。

  1. PARTITION BY RANGE ("STAT_TIME"
  2.   SUBPARTITION BY LIST ("GAME_TYPE"
  3.   SUBPARTITION TEMPLATE ( 
  4.     SUBPARTITION "SP_ABC" values ( 'abc' ) 
  5.   TABLESPACE "TEST_DATA" , 
  6. 。。。 
  7.     SUBPARTITION "SP_OTHER" values ( 'xjzj''hij' 
  8. )  TABLESPACE "TEST_DATA"  ) 
  9.  (PARTITION "P_OLD"  VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00''SYYYY-MM-DD HH24:MI:SS''NLS_CALENDAR=GREGORIAN')) 

对于这类问题,虽然还是有些陌生,但是还是有一些分区表的底子的,所以分析起来也不会有太大的偏差。

按照DDL的格式,我们是要想修改template的子分区模板规则。

  1. alter table TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN  
  2. set SUBPARTITION TEMPLATE ( 
  3.     SUBPARTITION "SP_ABC" values ( 'abc' ) 
  4.   TABLESPACE "TEST_DATA" , 
  5.     。。。 
  6.     SUBPARTITION "SP_OTHER" values ( 'xjzj''hij','pz’) 
  7.   TABLESPACE "TEST_DATA"  ) 

按照这种方式修改模板就没有问题了,然后继续尝试插入数据,发现还是同样的错误。这个时候是哪里的问题了呢。

根据错误反复排查,还是指向了分区的定义,那么我们看看其中一个分区的情况。

  1. (PARTITION "P_OLD"  VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00''SYYYY-MM-DD HH24:MI:SS', 'NL 
  2. _CALENDAR=GREGORIAN'))  
  3.  TABLESPACE "TEST_DATA" 
  4. ( SUBPARTITION "P_OLD_SP_ABC"  VALUES ('abc'
  5.  TABLESPACE "TEST_DATA"
  6. 。。。 
  7.  SUBPARTITION "P_OLD_SP_OTHER"  VALUES ('xjzj', hij', 'pz') 
  8.  TABLESPACE "TEST_DATA") , 

所以按照分区的定义,里面还是少了这个subpartition的数值范围信息。

如果想重新生成一个新的subpartition可以使用如下的方式:

  1. ALTER TABLE TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN MODIFY PARTITION P_OLD add SUBPARTITION P_OLD_SP_OTHER_pz VALUES ('pz'); 

如果想生成默认的subpartition名称可以使用如下的方式:

  1. ALTER TABLE TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN MODIFY PARTITION P2017_Q2 add SUBPARTITION VALUES ('pz'); 

这个时候的subpartition的信息,我摘录出一个来简单看看。

  1. ( SUBPARTITION "P2017_Q3_SP_ABC"  VALUES ('abc'
  2.  TABLESPACE "TEST_DATA"
  3. 。。。 
  4.  SUBPARTITION "P2017_Q3_SP_OTHER"  VALUES ('xjzj''hij')    TABLESPACE "TEST_DATA"
  5.  SUBPARTITION "SYS_SUBP22"  VALUES ('pz'
  6.  TABLESPACE "TEST_DATA") , 

如果依旧觉得不满意,我们来使用merge subpartitions的方式,当然这个操作还是会有全局锁的,会把两个分区整合为一个。

  1. ALTER TABLE TLSTAT_NEWBG.DY_USER_ANALYSIS_MIN MERGE SUBPARTITIONS P2017_Q2_SP_OTHER,SYS_SUBP21 INTO SUBPARTITION P2017_Q2_SP_OTHER; 

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/232469.html<

(0)
管理的头像管理
上一篇2025-04-20 04:34
下一篇 2025-04-20 04:36

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注