亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Oracle故障處理之ORA-00600錯誤處理思路分析

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

項目場景

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

報錯復現(xiàn)很簡單:

現(xiàn)場有一張重要性很高的業(yè)務表,因為隱私,我在這里給它賦名為A表?,F(xiàn)場對A表做INSERT、UPDATE、DELETE等操作時,全部報錯,報錯提示就是上面的ORA-00600。

也就是說現(xiàn)在在A表上發(fā)生任何事務,都會報錯ORA-00600。

問題分析

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

但對于實際生產(chǎ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, 獲取原來的建表語句,直接建表。

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

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

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

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

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

Ⅴ:數(shù)據(jù)驗證

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

優(yōu)化建議

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

后來和處理該問題的前輩請教溝通,前輩講的優(yōu)化建議非常有用:

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

總結(jié)

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

相關(guān)文章

最新評論