自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle數(shù)據(jù)庫(kù)常見錯(cuò)誤操作及解決方案

數(shù)據(jù)庫(kù) Oracle
Oracle數(shù)據(jù)庫(kù)是很多用戶都很喜歡的數(shù)據(jù)庫(kù)管理系統(tǒng),那么Oracle數(shù)據(jù)庫(kù)操作過(guò)程中難免會(huì)出現(xiàn)一些錯(cuò)誤,下文中就為大家總結(jié)了一些Oracle數(shù)據(jù)庫(kù)常見的錯(cuò)誤以及解決方案。

Oracle數(shù)據(jù)庫(kù)是很多用戶都很喜歡的數(shù)據(jù)庫(kù)管理系統(tǒng),那么Oracle數(shù)據(jù)庫(kù)操作過(guò)程中難免會(huì)出現(xiàn)一些錯(cuò)誤,下文中就為大家總結(jié)了一些Oracle數(shù)據(jù)庫(kù)常見的錯(cuò)誤以及解決方案。希望下文中涉及到的內(nèi)容對(duì)大家能夠有所幫助。

ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME

產(chǎn)生原因:

上述ORACLE錯(cuò)誤為回滾段表空間不足引起的,這也是ORACLE數(shù)據(jù)管理員最常見的ORACLE錯(cuò)誤信息。當(dāng)用戶在做一個(gè)非常龐大的數(shù)據(jù)操作導(dǎo)致現(xiàn)有回滾段的不足,使可分配用的回滾段表空間已滿,無(wú)法再進(jìn)行分配,就會(huì)出現(xiàn)上述的錯(cuò)誤。
解決方式:

使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的數(shù)據(jù)增加表空間,根據(jù)具體的情況可以增加一個(gè)或多個(gè)表空間。當(dāng)然這與還與你主機(jī)上的裸盤設(shè)備有關(guān),如果你主機(jī)的裸盤設(shè)備已經(jīng)沒(méi)有多余的使用空間,建議你不要輕意的增加回滾段表空間的大小,可使用下列的語(yǔ)句先查詢一下剩余的tablespace空間有多少:

Select user_name,sql_text from V$open_cursor where user_name=’<user_name>’;

 

如果多余的空間比較多,就可以適當(dāng)追加一個(gè)大的回滾段給表空間使用,從而避免上述的錯(cuò)誤。你也可以用以下語(yǔ)句來(lái)檢測(cè)
一下rollback segment的競(jìng)爭(zhēng)狀況:

Select class,count from V$waitstat where calss in(‘system undo header’,’
system undo block’,’undo header’,’undo block’);

Select sum(value) from V$sysstat where name in (‘db_block_gets’,’consistents gets’);

如果任何一個(gè)class in count/sum(value)大于1%,就應(yīng)該考慮增加rollback segment。

ORA-01652:unable to extend temp segment by num in tablespace name

產(chǎn)生原因:

ORACLE臨時(shí)段表空間不足,因?yàn)镺RACLE總是盡量分配連續(xù)空間,一但沒(méi)有足夠的可分配空間或者分配不連續(xù)就會(huì)出現(xiàn)上述的現(xiàn)象。

解決方法:

我們知道由于ORACLE將表空間作為邏輯結(jié)構(gòu)-單元,而表空間的物理結(jié)構(gòu)是數(shù)據(jù)文件,數(shù)據(jù)文件在磁盤上物理地創(chuàng)建,表空間的所有對(duì)象也存在于磁盤上,為了給表空間增加空間,就必須增加數(shù)據(jù)文件。先查看一下指定表空間的可用空間,使用視圖SYS.DBA_FREE_SPACE,視圖中每條記錄代表可用空間的碎片大小:

SQL>Select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=
’<users>’;

 

返回的信息可初步確定可用空間的***塊,看一下它是否小于錯(cuò)誤信息中提到的尺寸,再查看一下缺省的表空間參數(shù):

 

SQL>SELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES
WHERE TABLESPACE_NAME=name;

通過(guò)下面的SQL命令修改臨時(shí)段表空間的缺省存儲(chǔ)值:
SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY);

適當(dāng)增大缺省值的大小有可能解決出現(xiàn)的錯(cuò)誤問(wèn)題,也可以通過(guò)修改用戶的臨時(shí)表空間大小來(lái)解決這個(gè)問(wèn)題:
SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name;

使用ALTER TABLESPACE命令,一但完成,所增加的空間就可使用,無(wú)需退出數(shù)據(jù)庫(kù)或使表空間脫機(jī),但要注意,一旦添加了數(shù)據(jù)文件,就不能再刪除它,若要?jiǎng)h除,就要?jiǎng)h除表空間。

一個(gè)報(bào)錯(cuò)例子如下:

ORA-1652:unable to extend temp segment by 207381 in tablespace TEMPSPACE

ORA-01628:max # of extents num reached for rollback segment num

產(chǎn)生原因:

這種錯(cuò)誤通常為一個(gè)回滾段和一個(gè)表空間已經(jīng)達(dá)到MAXEXTENTS參數(shù)設(shè)置的極限。要注意的是這個(gè)MAXEXTENTS不是該回滾段或表空間的硬件極限,硬件極限取決于數(shù)據(jù)庫(kù)創(chuàng)建時(shí)在init.ora文件中指定的DB_BLOCK_SIZE參數(shù)的值。

解決方法:

使用SQL命令A(yù)LTER TABLESPACE…STORAGE(MAXEXTENTS XXXX)來(lái)增加 MAXEXTENTS,其中“XXXX”值必須大于錯(cuò)誤信息中所指的數(shù)值,但不能大于LARGEST MAXEXTENT的值,如果已經(jīng)達(dá)到了LARGEST MAXEXTENT VALUE,解決的辦法就是重新創(chuàng)建較大的范圍尺寸,使用帶有選項(xiàng)COMPRESS=Y的Export工具導(dǎo)出表,如果表空間有可用空間,先給表做一個(gè)備份,用alter tablespace tablespace_name更改其名字,然后再裝載表回?cái)?shù)據(jù)庫(kù)。

查看其錯(cuò)誤出現(xiàn)的地方,如果出現(xiàn)在回滾段或索引上,那么必須將其刪除并重建,如果出現(xiàn)在臨時(shí)表空間,修改臨時(shí)表空間的存儲(chǔ)字段,便可解決這個(gè)問(wèn)題。

一個(gè)報(bào)錯(cuò)例子如下:

ORA-1628:max # extents 50 reached for rollback segment RBS_1

ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]

產(chǎn)生原因:

這種錯(cuò)誤通常為ORACLE的內(nèi)部錯(cuò)誤,只對(duì)OSS和ORACLE開發(fā)有用。ORA-600的錯(cuò)誤經(jīng)常伴隨跟蹤文件的狀態(tài)轉(zhuǎn)儲(chǔ)(系統(tǒng)狀態(tài)和進(jìn)程狀態(tài)),系統(tǒng)狀態(tài)存儲(chǔ)將包括ORACLE RDBMS持有的當(dāng)前對(duì)象的信息,進(jìn)程狀態(tài)轉(zhuǎn)儲(chǔ)則將顯示特殊進(jìn)程持有的對(duì)象,當(dāng)進(jìn)程符合了某錯(cuò)誤條件時(shí),經(jīng)常是由于一些信息取自它持有的一個(gè)塊,如果我們知道這些錯(cuò)誤進(jìn)程持有的塊,就容易跟蹤問(wèn)題的來(lái)源。

解決方法:

一般來(lái)說(shuō)出現(xiàn)這個(gè)錯(cuò)誤我們本身是無(wú)法解決的,只有從提高系統(tǒng)本身各方面來(lái)解決這個(gè)內(nèi)部問(wèn)題,如增加硬件設(shè)備,調(diào)整系統(tǒng)性能,使用OPS(當(dāng)然OPS從某種意義上說(shuō)并不是一種好的解決方式)等。ORA-600錯(cuò)誤的***個(gè)變量用于標(biāo)記代碼中錯(cuò)誤的位置(代碼中的每個(gè)部分的***變量都不一樣),從第二個(gè)到第五個(gè)變量顯示附加信息,告訴OSS代碼在哪里出現(xiàn)了錯(cuò)誤。

一個(gè)報(bào)錯(cuò)例子如下:

ORA-00600: internal error code, arguments: [1237], [], [], [], [], [], [], []

ORA-03113:end-of-file on communication channel

產(chǎn)生原因:

通訊不正常結(jié)束,從而導(dǎo)致通訊通道終止

解決方法:

1>.檢查是否有服進(jìn)程不正常死機(jī),可從alert.log得知

2>.檢查sql*Net Driver是否連接到ORACLE可執(zhí)行程序

3>.檢查服務(wù)器網(wǎng)絡(luò)是否正常,如網(wǎng)絡(luò)不通或不穩(wěn)定等

4>.檢查同一個(gè)網(wǎng)上是否有兩個(gè)同樣名字的節(jié)點(diǎn)

5>.檢查同一個(gè)網(wǎng)上是否有重復(fù)的IP地址

ORA-00942:table or view does not exist

產(chǎn)生原因:

這是由于裝載的表或視圖不存在,多半是CATEXP.SQL還沒(méi)有運(yùn)行,無(wú)法執(zhí)行Export視圖,如果CATEXP.SQL已經(jīng)運(yùn)行,則可能是版本錯(cuò)誤。

解決方法:

因?yàn)镮mport和Export共享的一些視圖是通過(guò)運(yùn)行CATEXP.SQL來(lái)裝載的(它們具有相同的視圖),并不生成單獨(dú)的CATEXP.SQL,因而造成視圖與Export代碼不同步,較難保持彼此之間的兼容,用戶就必須建立自己的Export應(yīng)用,從而避免ORA-00942的錯(cuò)誤。

上述錯(cuò)誤均為我們?cè)谑褂没貪L段時(shí)比較常見的問(wèn)題,ORA-01598指明當(dāng)前使用的回滾段的狀態(tài)為“not online”,不能使用,將它改為“online”狀態(tài)即可使用;ORA-01636指明當(dāng)前回滾段已經(jīng)為“online”狀態(tài),可以直接使用,不用再集合它。

ORA-1636 signalled during: alter rollback segment rb00 online

我們?cè)谧鼋y(tǒng)計(jì)時(shí)還可能遇到下述問(wèn)題:一個(gè)rollback segment的狀態(tài)為”Needs Recovery”的現(xiàn)象,這是由于ORACLE回退一個(gè)事物表中的沒(méi)有提交的事物時(shí)失敗所造成的。通常原因?yàn)橐粋€(gè)datafile或者tablespace是在offline的狀態(tài)或者一個(gè)undo的目標(biāo)被破壞或者rollback segment被破壞。解決的辦法是將所有的tablespace和datafile都置為online狀態(tài),如果不能解決則做下面的工作:

1>.在initsid.ora中加入event=”10015 trace name context forever lever 10”;

2>.shutdown數(shù)據(jù)庫(kù)然后重啟;

3>.在$ORACLE_HOME/rdbms/log下,找到startup時(shí)生成的trace file;

4>.在trace文件中,找到下列信息“error recovery tx(#,#) object #”;

5>.根據(jù)object#(與sys.dba_objects表中的object_id相同)在sys.dba_objects表中查出該object的名字;

6>.將該object drop掉;

7>.在init.ora文件中將該rollback segment放回rollback_segments參數(shù)中,刪除event;8>.shutdown數(shù)據(jù)庫(kù)然后重啟。此時(shí)”Needs Recovery”的問(wèn)題應(yīng)該是完全解決了,否則就是rollback segment被破壞了。

ORA-01688:unable to extend table name.name partition NAME by NUM in tablespace NAME

產(chǎn)生原因:

指定的tablespace空間已經(jīng)被占用滿,無(wú)法擴(kuò)展。

解決方法:

使用“ALTER TABLESPACE ADD DATAFILE”命令增加文件系統(tǒng)文件和原始分區(qū),或者增加INITIAL的大?。ㄈ纾篴lter tablespace CDRS101 default storage(next 500M pctincrease 1))應(yīng)該能夠解決,否則就是有人使用你的表空間上創(chuàng)建了一個(gè)比較大的數(shù)據(jù)文件導(dǎo)致你的表空間不夠用。

一個(gè)報(bào)錯(cuò)例子如下:

ORA-1688: unable to extend table RMMCDR.LOCAL_CDR partition LOCAL_CDR101 by 460800 in
tablespace CDRS101

關(guān)于Oracle數(shù)據(jù)庫(kù)常見的錯(cuò)誤操作就為大家總結(jié)這么多,希望大家都能夠從上文中涉及到的內(nèi)容中有所收獲,掌握好Oracle數(shù)據(jù)庫(kù)常見錯(cuò)誤操作的解決方案,以后在工作中遇到類似問(wèn)題就能夠輕松解決了。

 

責(zé)任編輯:迎迎 來(lái)源: CBSi中國(guó)·PChome.net
相關(guān)推薦

2011-07-26 16:05:19

Oracle數(shù)據(jù)庫(kù)服務(wù)器

2009-11-18 16:10:00

2011-04-29 10:02:35

投影機(jī)

2011-07-12 16:42:41

2011-07-22 17:37:18

MySQL數(shù)據(jù)庫(kù)

2010-05-10 17:46:21

Oracle數(shù)據(jù)庫(kù)

2010-10-29 13:55:48

Oracle日志文件

2019-12-03 09:00:59

Oracle數(shù)據(jù)庫(kù)等待事件

2022-03-23 13:05:46

IT服務(wù)管理CIO

2011-08-12 12:26:16

Oracle數(shù)據(jù)庫(kù)TNSListener

2012-04-16 15:00:05

Oracle數(shù)據(jù)庫(kù)安全

2011-03-07 16:42:05

MySQL數(shù)據(jù)庫(kù)安全

2017-12-27 13:07:52

數(shù)據(jù)庫(kù)MySQL主從復(fù)制

2017-09-08 15:20:13

數(shù)據(jù)庫(kù)MysqlGalera

2011-03-18 09:36:18

Oracle數(shù)據(jù)庫(kù)

2019-10-08 16:05:19

Redis數(shù)據(jù)庫(kù)系統(tǒng)

2010-04-19 17:25:25

Oracle數(shù)據(jù)庫(kù)

2011-08-22 15:31:51

SQL Servermssqlserver數(shù)據(jù)庫(kù)復(fù)制

2011-03-24 15:41:42

數(shù)據(jù)庫(kù)

2011-01-21 09:43:10

安恒數(shù)據(jù)庫(kù)安全安全審計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)