成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle分區數據問題的分析和修復

數據庫 Oracle
一般的分區表都是Range分區,基本就是數值范圍或者是日期來做范圍分區,這個問題該怎么理解呢,如果按照時間分區,那么另外一個SQL插入也應該失敗才對。

今天根據同事的反饋,處理了一個分區表的問題,也讓我對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; 

 

責任編輯:武曉燕 來源: Linux社區
相關推薦

2023-04-25 18:54:13

數據數據丟失

2020-09-25 08:13:48

MySQL

2021-12-06 08:31:18

Oracle數據庫后端開發

2018-03-09 16:27:50

數據庫Oracle同步問題

2010-04-19 13:43:38

Oracle分析函數

2009-03-06 16:21:59

LinuxTestdisk修復軟件

2009-05-19 14:34:52

Oraclehash優化

2015-09-21 09:10:36

排查修復Windows 10

2010-04-16 14:48:27

Oracle Spat

2021-12-27 09:15:16

Oracle數據庫后端開發

2010-04-23 15:58:20

Oracle用戶

2024-10-16 08:23:15

大型語言模型LLM機器學習

2014-06-17 15:20:09

Wi-FiiPadiPhone

2023-08-28 10:42:22

數據庫Oracle

2019-05-08 08:00:49

增強分析數據科學分析技術

2010-04-19 14:23:34

Oracle增加表分區

2009-02-01 13:33:13

Oracle數據庫配置

2011-05-18 11:08:34

oracleupdate

2011-08-01 18:42:40

分區維度物化視圖

2010-04-16 12:57:20

Spatial數據加密
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 熟女毛片 | 91久久 | 一级片在线免费看 | 亚洲免费精品 | 亚洲 欧美 另类 日韩 | 日本精品在线观看 | 色接久久| 欧美日韩亚洲国产综合 | 精品国产一区三区 | 97福利在线 | 国产中文字幕网 | 久久久国产一区二区三区 | 97在线观视频免费观看 | 国产一区在线免费观看视频 | 日本在线免费 | 国产黄色大片在线观看 | 91色视频在线观看 | 日本不卡免费新一二三区 | 免费在线观看毛片 | 色爱综合 | 亚洲一一在线 | av一二三区 | 嫩草视频在线看 | 国产乱码精品一区二区三区中文 | 国产这里只有精品 | 一区二区三区四区在线 | 亚洲欧美日韩在线 | 国产精品射 | 欧美一级视频免费看 | 成人在线视频网址 | 国产精品国产三级国产aⅴ中文 | 成人在线视频一区二区三区 | 中文字幕日韩av | 欧美视频在线播放 | 亚洲精品电影网在线观看 | 欧美video | 久久中文网 | 有码在线 | 精品不卡 | 成人免费视频 | 欧美a区 |