数据字典表Truncate丢失将招致数据库不可用
?泉源:賽迪網(wǎng)????作者:Arvin
在夢(mèng)想的義務(wù)環(huán)境下,假如你在操作時(shí)將數(shù)據(jù)庫(kù)內(nèi)的幾個(gè)數(shù)據(jù)字典表Truncate丟失,將會(huì)直接招致數(shù)據(jù)庫(kù)不能再承襲使用,本文將針對(duì)一個(gè)相關(guān)案例舉行詳盡的講解。
案例如下:
數(shù)據(jù)庫(kù)環(huán)境:Oracle數(shù)據(jù)庫(kù)9.2.0.7 RAC。(注:由于數(shù)據(jù)庫(kù)的事故量體別年夜,以是數(shù)據(jù)庫(kù)沒(méi)有舉行備份)。
反省后締造的被截?cái)啾?#xff1a;
SQL> select object_name,object_type from dba_objects where object_name like 'IDL%'; OBJECT_NAME OBJECT_TYPE ------------------- ------------------ IDL_CHAR$ TABLE IDL_SB4$ TABLE IDL_UB1$ TABLE IDL_UB2$ TABLE
IDL_UB1$表是分外主要的字典表,只需出現(xiàn)妨礙,數(shù)據(jù)庫(kù)就會(huì)出現(xiàn)年夜量的ORA-00600錯(cuò)誤,全部事故將不能舉行。
ORA-00600: internal error code, arguments: [17069], [0xC0000000DDDFA690], [], [], [], [], [], []
ORA-600 17069錯(cuò)誤是一個(gè)分外難明決的功效,功效出現(xiàn)后數(shù)據(jù)庫(kù)的某個(gè)跟蹤日記很快就會(huì)出現(xiàn)暴漲的環(huán)境,由于IDL系列字典表是記實(shí)數(shù)據(jù)庫(kù)東西編譯信息的,損失了此中的數(shù)據(jù),全部進(jìn)程、Package等都將無(wú)法執(zhí)行。
字典表感化的闡明');:
IDL_UB1$ is one of four tables that hold compiled PL/SQL code: IDL_UB1$ IDL_CHAR$ IDL_UB2$ IDL_SB4$ "PL/SQL is based on the programming language Ada. As a result, PL/SQL uses a variant of Descriptive Intermediate Attributed Notation for Ada (DIANA), which is a tree-structured intermediate language. It is defined using a meta-notation called Interface Definition Language (IDL). DIANA provides for communication internal to compilers and other tools. "At compile time, PL/SQL source code is translated into machine-readable m-code.Both the DIANA and m-code for a procedure or package are stored in the database.At run time, they are loaded into the shared (memory) pool. The DIANA is used to compile dependent procedures; the m-code is simply executed." These four tables hold the DIANA and the so-code m-code. I think "m-code" is short for machine-dependent byte code but there is a sizable machine-indenpendent part as well. If you have a look at sql.bsq, you can see that Oracle documents the "type" column of these tables as follows: part number not null, /* part: 0 = diana, 1 = portable pcode, 2 = machine-dependentpcode */
假如出現(xiàn)更為嚴(yán)肅的環(huán)境,它將招致年夜量零碎DBMS包見(jiàn)效,其從新編譯也將更為重大。
規(guī)單數(shù)據(jù)庫(kù),消除全部ORA-600錯(cuò)誤的方式:
規(guī)復(fù)的方式是經(jīng)過(guò)進(jìn)程運(yùn)轉(zhuǎn)相關(guān)的劇本,重修和從新編譯全部Procedure/Trigger/Package等東西,重重天生這些東西的DIANA和so-code m-code,首要包括catlog.sql,catproc.sql等劇本。
看重:即使以損耗年夜量的功夫?yàn)閮r(jià)格,一些ORA-00600錯(cuò)誤也必須籌劃。
版權(quán)聲明: 原創(chuàng)作品,答應(yīng)轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接方式標(biāo)明文章 原始來(lái)因 、作者信息和本聲明。不然將窮究紀(jì)律責(zé)任。
轉(zhuǎn)載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1974381.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的数据字典表Truncate丢失将招致数据库不可用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机xp桌面没有下面的图标,Windo
- 下一篇: SQL Server 2000中的数据转