有關域索引錯誤產生的原因及解決辦法

?

1說明

數據庫錯誤ORA-29861:域索引標記為LOADING/FAILED/UNUSABLE,其錯誤原因及解決辦法,根據ORACLE官方文檔的說法如下:

//?*Cause:?An?attempt?has?been?made?to?access?a?domain?index?that?is
//?????????being?built?or?is?marked?failed?by?an?unsuccessful?DDL
//?????????or?is?marked?unusable?by?a?DDL?operation.

//?*Action:?Wait?if?the?specified?index?is?marked?LOADING
//??????????Drop?the?specified?index?if?it?is?marked?FAILED
//??????????Drop?or?rebuild?the?specified?index?if?it?is?marked?UNUSABLE

由上述可知,當空間索引被DDL標記為FAILED或UNUSABLE時,訪問空間索引會報該錯誤。當出現此類錯誤時,若標記為LOADING,則需等待DDL完成;若標記為FAILED,則需刪除索引;若標記為USUSABLE,則需重建或刪除。盡管,ORACLE給出了解決辦法,但顯然不適用于我們的使用場景。我們不可能在每一次出現此類錯誤時,都刪除索引重建或者使用REBUILD命令。我們的目標是避免此類錯誤的產生,而不是在此類錯誤發生后采取某些解決手段。

既然是由DDL引起,自然首先應關心哪些DDL會引起此類錯誤呢?這里分兩類情況,分全局索引和分區索引。

2全局索引

????當使用全局域索引時,以下的DDL命令會造成上述域索引錯誤:

  • Exchange partition(我們的應用中目前沒有使用這一技術)
  • Drop partiion ,當drop的分區中存在數據記錄時,標記UNUSABLE
  • Truncate partition(我們的應用中目前沒有使用這一技術)
  • Split partition ,當分裂后的兩個分區中均存在數據時,標記UNUSABLE
  • Create index ,當由于某些原因(例如弧),創建失敗時,標記FAILED

在我們的應用中,存在drop partition、split partition、create index命令。其中create index在數據庫初始化的時候進行,此時圖層為空圖層,所以不會出現將域索引標記為FAILED的情況;而drop partition會在刪除某個縣的數據時用到,此時該分區內可能有數據,當存在數據時,會導致域索引被標記為USUABLE;split partition會在應用中用到,但不會出現分裂后的兩個分區均存在數據的情況,因此在我們的應用中不會因為split partition導致域索引被標記為UNUSABLE或FAILED。因此,得出一個結論,在使用drop partition、技術刪除某個縣的數據時,若使用全局索引,極有可能出現域索引的問題。

可以通過如下命令查看某個全局索引是否被標記為UNUSABLE或FAILED。

select INDEX_NAME,INDEX_TYPE,STATUS,DOMIDX_STATUS,DOMIDX_OPSTATUS from user_indexes where table_name=TABLENAME and index_type='DOMAIN';

若STATUS值為UNUSABLE或FAILED,或者DOMIDX_OPSTATUS值為FAILED,則該索引需要被刪除或被重建。重建的命令如下:

Alter index index_name rebuild;

3分區索引

????當使用分區索引時,以下DDL命令會造成上述域索引錯誤:

  • ????Split partition ,當分裂后的兩個分區中均存在數據時,標記UNUSABLE
  • Create index ,當由于某些原因(例如弧),創建失敗時,標記FAILED

其中create index在數據庫初始化的時候進行,此時圖層為空圖層,所以不會出現將域索引標記為FAILED的情況;split partition會在應用中用到,但不會出現分裂后的兩個分區均存在數據的情況,因此在我們的應用中不會因為split partition導致域索引被標記為UNUSABLE或FAILED。綜上所述,對于分區索引,我們的應用應該不會導致域索引錯誤。當的確在分區索引時出現了域索引錯誤,極有可能將多個縣的數據入在了一個分區中。而至于為什么出現將多個縣的數據入在了一個分區中,需要認真分析原因。

可以通過如下命令查看某個全局索引是否被標記為UNUSABLE或FAILED。

Select INDEX_NAME,PARTITION_NAME,STATUS,DOMIDX_OPSTATUS from user_ind_partitions where index_name=INDEXNAME

若STATUS值為UNUSABLE或FAILED,或者DOMIDX_OPSTATUS值為FAILED,則該索引需要被刪除或被重建。重建的命令如下:

Alter index INDEXNAME rebuild partition partition_name;

轉載于:https://www.cnblogs.com/6yuhang/p/8250488.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/369957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/369957.shtml
英文地址,請注明出處:http://en.pswp.cn/news/369957.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳細解讀css中的浮動以及清除浮動的方法

對于前端初學者來說,css浮動部分的知識是一塊比較難以理解的部分,下面我將把我學習過程中的心得分享給大家。 導讀: 1.css塊級元素講解 2.css中浮動是如何產生的 3.出現浮動后,如何清除浮動(本文將涉及到多種清除浮動…

微信多開txt_電腦版微信怎么雙開、多開

新建一個txt文本文件,在文件中寫入如下代碼:echo offstart /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exestart /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exeexit保存文本文件。這里需要注意的是&#xff1a…

java 基礎--隨筆

---恢復內容開始--- java 對大小寫敏感。 java沒有任何無符號類型(unsigned)。 C/C是編譯型語言,java是解釋性語言。 JAVA編譯過程同C/C 的 編譯有些不同。當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬件平臺運行而…

多源計算機培訓,多源數據匯聚的多流形學習算法研究

摘要:隨著信息技術和互聯網的飛速發展,人們可以從多個信息源獲得數據,即多源數據.由于多源數據具有類型多樣,尺度不統一等特點,對多源數據進行匯聚并提取有效信息是機器學習和模式識別等領域研究的熱點.由于多流形學習能夠有效地揭示復雜數據中的內在結構,因此本文主…

Ubuntu 16.04 安裝mysql5.7

技術更新換代,數據庫也不斷更新,需要不斷努力學習,下面就是如何在 ubuntu中安裝 mysql。 廢話不多說,上來就是干 一、安裝mysql 5.7 sudo apt-get update sudo apt-get install mysql-server 中間會提示您輸出root 密碼&#xff…

CSS多列布局(實例)

前言 一列布局二列布局三列布局 1 一列布局 一列布局&#xff1a; HTML部分 <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>一列布局</title> </head> <body> <div class"head">…

阿帕奇駱駝備忘單

輪詢一個空目錄&#xff08;并發送一個空消息&#xff0c;正文為空&#xff09;&#xff1a; from(file://temp?sendEmptyMessageWhenIdletrue)停止路線&#xff1a; .process(new Processor() {public void process(Exchange exchange) throws Exception {getContext().stopR…

js中雙感嘆號_JavaScript中雙嘆號(!!)作用

經常看到這樣的例子&#xff1a;vara&#xff1b;var b!!a;a默認是undefined。!a是true&#xff0c;!!a則是false&#xff0c;所以b的值是false&#xff0c;而不再是undefined&#xff0c;也非其它值&#xff0c;主要是為后續判斷提供便利。!!一般用來將后面的表達式強制轉換為…

大頭貼計算機教程,推薦!自家電腦也能拍大頭貼的秘密

您可能感興趣的話題&#xff1a;美圖拍拍核心提示&#xff1a;一直都超愛拍大頭貼&#xff0c;喜歡每張都能換不同的框框&#xff1b;喜歡可以直接看到效果&#xff0c;做出滿意的動作&#xff1b;喜歡將大頭貼和朋友們分享……不過夏日炎炎的&#xff0c;出門太麻煩&#xff0…

用CSS偽類制作一個不斷旋轉的八卦圖?

前言 介紹一下如何制作一個不斷旋轉的八卦圖。快速預覽代碼及效果&#xff0c;點擊&#xff1a;八卦圖 代碼如下&#xff1a; HTML部分 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>JS Bin</title> </head&…

js根據ip自動獲取地址(省市區)

HTML&#xff1a; <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0"><title>標題</title>&l…

流利的對象創建

關于此主題的文章很多&#xff08;絕大多數&#xff09;&#xff0c;但我只是想貢獻我的兩分錢&#xff0c;寫一篇簡短的文章&#xff0c;介紹如何使用Java中的Fluent Object Creation模式或對象構建器實例化Value Objects。 值對象是由其狀態&#xff08;值&#xff09;而不是…

計算機等級考試試題4,計算機等級考試二級模擬試題4

計算機等級考試二級模擬試題計算機等級考試二級模擬試題4基礎知識與FOXBASE程序設計(考試時間120分鐘&#xff0c;滿分100分)一、選擇題((1)-(40)每個選項1分,(41)-(50)每個選項2分,共60分)下列各題A)、B)、C)、D)、四個有選項中,只有一個選項是正確的(1)通常所說的主機主要包括…

springboot怎么替代jsp_如何在SpringBoot中使用JSP ?

1. 在pom.xm中加入支持JSP的依賴org.apache.tomcat.embedtomcat-embed-jasperprovidedjavax.servlet.jsp.jstljstl-api1.22. 在src/main/resources/application.properties文件中配置JSP和傳統Spring MVC中和view的關聯# MVCspring.view.prefix/WEB-INF/views/spring.view.suff…

css選擇器的綜合使用

代碼實現&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"utf-8">5 <title>css的綜合使用</title>6 <style>7 div {8 colo…

啟動tomcat時 一閃而過解決方法

【前文】 在實際開發中一般都是eclipsetomcat(也許還會用到tomcat的插件)&#xff0c;我們只需要在eclipse中單擊servers上的按鈕就可以成功啟動tomcat了&#xff0c; 但是如果想在tomcat的安裝目錄下 雙擊startup.bat啟動時卻一閃而過了。這是為什么呢&#xff08;tomcat啟動失…

Google Guava多集

繼續這次番石榴之旅&#xff0c;我們到達了Multiset 。 我可能不像Multimaps或Bimaps那樣使用它&#xff0c;但是它確實有它的用途。 那么什么是多重集&#xff1f; 也許您可以猜到它是一個可以容納同一對象的多個實例的集合。 這不僅僅是列表嗎&#xff1f; 在Java中&#x…

用javascript實現簡單的用戶登錄驗證

用javascript實現簡單的用戶登錄驗證 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body><script type"text/javascript">function c…

怎么把計算機改程序,怎樣修改程序軟件

大家好&#xff0c;我是時間財富網智能客服時間君&#xff0c;上述問題將由我為大家進行解答。修改程序軟件的方法是&#xff1a;這個必須要會編程才行&#xff1b;不會編程的話那是不可能的&#xff1b;對它進行反編譯&#xff1b;脫殼&#xff1b;反編譯好再把它重新加殼。程…

HTML的display屬性將行內元素、塊狀元素、行內塊狀元素互相轉換以及三者的區別

1.行內元素 查看演示 (1)設置寬高無效 (2)對margin僅設置左右方向有效&#xff0c;上下無效&#xff1b;padding設置上下左右都有效&#xff0c;即會撐大空間 (3)不會自動進行換行 <html> <head> <meta charset"utf-8" /> <title>行內元…