程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle常見錯誤診斷

Oracle常見錯誤診斷

編輯:Oracle數據庫基礎
Oracle的這類錯誤在ORALCE的文檔中有詳細說明,但原因及措施說明不詳細,本文當著重說明如何解決這類錯誤。

  1、ORA-12571、ORA-03113、ORA-03114、ORA-01041

  特征:客戶端(代理或應用服務器)有時報這類斷連錯誤

  原因:如果偶爾出現一次,則可能為網絡原因或用戶異常中止,如果經常出現則為客戶端與服務端的字符集不一致。

  措施:如果偶爾出現,可在服務端的協議配置文件PROTOCOL.ORA中增加一行

  TCP.NODELAY=YES;

  如果經常出現,則為客戶端與服務端字符集不一致或網絡原因。

  客戶端的字符集在注冊表裡定義:    HKEY__LOCAL__MacHINE/SOFTWARE/Oracle/NLS__LANG

  在客戶端注冊表中的TCP參數項中設置   TCPMAXDATARETRANSMITIONS=20。

  2、ORA-01000

  特征:達到會話允許的最大游標數

  原因:達到會話允許的最大游標數

  措施:有兩種解決方法:

  (1)在初始化文件INIT.ORA文件中增加OPEN_CURSORS的數量,一般要求大於200。

  (2)在應用級,與開發工具有關,例如設置MAXOPEN_CURSORS等。

  3、ORA-01545

  特征:某個回滾段不可用

  原因:(1)當使回滾段ONLINE時,但回滾段不可用,例如回滾段所在表空間OFFLINE;

  (2) 當使回滾段ONLINE時,但回滾段已ONLINE,例如回滾段被使用兩次,典型的案例如OPS方式時,回滾段不能公有;

  (3)刪除回滾段時,回滾段中有活動的事務;

  措施:(1)確保回滾段可

  (2)從初始化文件INIT.ORA的參數ROLLBACK)SEGMENTS中刪除指定的回滾段。

  (3)可以將回滾段所在表空間刪除,取消UNDO事務

  4、ORA-0165x

  特征:表空間沒有足夠的空間供分配

  原因:表空間已滿;存儲參數不合理,NEXT太小;沒有連續的區間

  措施:如果表空間已滿,則需為表空間增加文件;如果存儲參數不合理,則需增加INITIAL和NEXT;如果沒有連續的區間,需要合並空閒的表空間。

  查看空間碎片用DBA_FREE_SPACE

  5、ORA-01555

  特征:當前會話無法讀到以前版本的數據

  原因:原因很多,主要原因有下列:回滾段太小、太少;回滾段沖突;交叉提交(FETCH_ACROSS)

  措施:增加回滾段數量;

  6、ORA-04031

  特征:共享池內存區內存不夠,或產生內存碎片

  原因:當試圖裝載一個大包時或執行一個較大的存儲過程時,而共享池沒有連續的內存空間。

  措施:如果是內存不夠,則增加SHARE)POOL_SIZE;

  如果是內存碎片,執行alter system flush share_pool

  7、ORA-04091

  特征:觸發器工作不正常

  原因:一個行觸發讀取或修改變化的表(正在修改、插入)時,產生這種錯誤。

  措施:檢查觸發器腳本,保證引用完整性

  8、ORA-01242、ORA-01113

  特征:介質故障導致數據庫宕機

  原因:介質故障。

  措施:檢查硬件故障;修改dbshut腳本,將其中的STARTUP命令修改為:

  Startup open recover

  Alter database open


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved