欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle故障處理之ORA-00600錯(cuò)誤處理思路分析

 更新時(shí)間:2024年05月23日 08:28:11   作者:姜豆豆耶  
最近在做一個(gè)項(xiàng)目,使用的是Oracle數(shù)據(jù)庫(kù),近兩天不知道怎么回事,告警日志里總是顯示這個(gè)錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于Oracle故障處理之ORA-00600錯(cuò)誤處理思路的相關(guān)資料,需要的朋友可以參考下

項(xiàng)目場(chǎng)景

在某項(xiàng)目數(shù)據(jù)庫(kù)運(yùn)維群,有現(xiàn)場(chǎng)同事發(fā)了張報(bào)錯(cuò)截圖如下。

報(bào)錯(cuò)復(fù)現(xiàn)很簡(jiǎn)單:

現(xiàn)場(chǎng)有一張重要性很高的業(yè)務(wù)表,因?yàn)殡[私,我在這里給它賦名為A表?,F(xiàn)場(chǎng)對(duì)A表做INSERT、UPDATE、DELETE等操作時(shí),全部報(bào)錯(cuò),報(bào)錯(cuò)提示就是上面的ORA-00600。

也就是說(shuō)現(xiàn)在在A表上發(fā)生任何事務(wù),都會(huì)報(bào)錯(cuò)ORA-00600。

問(wèn)題分析

ORA-00600是Oracle數(shù)據(jù)庫(kù)內(nèi)部錯(cuò)誤。這個(gè)錯(cuò)誤通常會(huì)伴隨一個(gè)錯(cuò)誤代碼(例如:ORA-00600: internal error code, arguments: [1234], [a], [b], [c], ...)。上圖即是例子。它沒(méi)有一個(gè)具體的解決方案??梢缘顷?my oracle support 查詢比對(duì)。

但對(duì)于實(shí)際生產(chǎn)來(lái)講,等不及問(wèn)題分析查清解決了。所以采取了如下思路:

Ⅰ:將A表重命名為 A_BAK_0422

alter table A rename to A_BAK_0422;

Ⅱ:建一張空表,表名為 A

考慮到 A 表本身數(shù)據(jù)量龐大,有125G,所以不適合使用如下代碼,效率太低。

CREATE TABLE A AS SELECT * FROM A_BAK_0422

所以只能建空表 A, 獲取原來(lái)的建表語(yǔ)句,直接建表。

Ⅲ:創(chuàng)建新A表索引

獲取舊A表的索引信息,給新A表也創(chuàng)建對(duì)應(yīng)的索引。

此時(shí)新的A表上發(fā)生事務(wù)是沒(méi)有問(wèn)題的,業(yè)務(wù)此時(shí)其實(shí)已經(jīng)可以恢復(fù)正常了。

Ⅳ:與舊表進(jìn)行數(shù)據(jù)整合

現(xiàn)在新A表雖然已正常,業(yè)務(wù)也可以正常展開(kāi)。但是A表畢竟還是缺失原有的數(shù)據(jù),需要將舊A表的數(shù)據(jù)進(jìn)行整合。此時(shí)整合的方式就有很多選擇,可以寫(xiě)PLSQL,也可以使用kettle這種ETL工具都可以快速的進(jìn)行整合。

Ⅴ:數(shù)據(jù)驗(yàn)證

整合完數(shù)據(jù)后,還是需要應(yīng)用系統(tǒng)的工程人員進(jìn)行數(shù)據(jù)驗(yàn)證,看是否正常。

優(yōu)化建議

其實(shí)當(dāng)時(shí)我有想過(guò)立即切換到容災(zāi)庫(kù),但是被領(lǐng)導(dǎo)否決了。因?yàn)樵撳e(cuò)誤屬于是邏輯錯(cuò)誤,而項(xiàng)目上的RPO接近0,數(shù)據(jù)在實(shí)時(shí)進(jìn)行同步,在發(fā)現(xiàn)報(bào)錯(cuò)時(shí),邏輯錯(cuò)誤數(shù)據(jù)已經(jīng)同步到容災(zāi)備庫(kù)中,即使切換到容災(zāi)備庫(kù),錯(cuò)誤記錄依然存在,數(shù)據(jù)庫(kù)依然無(wú)法正常對(duì)外提供服務(wù)。需要手動(dòng)處理掉數(shù)據(jù)庫(kù)中的邏輯錯(cuò)誤,才能修復(fù)數(shù)據(jù)庫(kù)。

后來(lái)和處理該問(wèn)題的前輩請(qǐng)教溝通,前輩講的優(yōu)化建議非常有用:

對(duì)容災(zāi)數(shù)據(jù)庫(kù)定時(shí)做快照,在發(fā)生邏輯錯(cuò)誤時(shí),可以將容災(zāi)數(shù)據(jù)庫(kù)回退到邏輯錯(cuò)誤發(fā)生前,然后切換容災(zāi)數(shù)據(jù)庫(kù)。

總結(jié)

到此這篇關(guān)于Oracle故障處理之ORA-00600錯(cuò)誤處理思路分析的文章就介紹到這了,更多相關(guān)Oracle ORA-00600錯(cuò)誤處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論