oracle-ORA-27102錯誤


 out of memory HP-UX Error: 12: Not enough space           

ORA-30019: Illegal rollback Segment operation in Automatic Undo mode

ORA-30036: unable to extend segment by 1024 in undo tablespace 'UNDOTBS1'

TNS-12500

 

....系統資源耗竭,意味着系統分配給oracle的內存用盡了。雖然我們有4G的物理內存,但正常情況下系統只能給oracle分配2G的內存,這2G的內存中,包括了SGA、PGA等oracle需要使用的全部內存。在獨占模式下,每一個session將單獨分配2M左右的內存。在本例中,SGA分配了約600M,按每一個用戶分配2M內存計算,連接數達到750個時,總分配內存已達到2G,將不能再增加新的連接數。如果要解決這個問題,在不做大的調整的前提下,要么減小SGA大小,要么減小為每一個會話分配的內存大小,以能連接更多的用戶。

解決過程:

1 重置init.ora參數文件,調小以下四個參數的值:

....short_area_size
....hash_area_size
....bitmap_merge_area_size
....create_bitmap_area_seze
....open_cursone

2 調小SGA的大小

3 減小oracle Job隊列數量(job_queue_processes)和並發隊列數(parallel_max_servers)

4 重置並減小會話/線程使用的堆棧大小

5 將oracle改為mts模式

6 使用intel的ESMA硬件支持,即使用大內存

..1) 在intel系統上使用 /3G 開關

..2) 使用PSE36內存

 

1  TNS-12154 Error 或ORA-12154

特征:SQL*NET沒有找到連接串或別名

原因1:(1)沒有找到TNSNAMES.ORA文件,該文件的缺省路徑為:

Windows 95/98 client

SQL*Net 2.x - ORAWIN95NETWORKADMIN

Net8 - ORAWIN95NET80admin

Net8i - ORACLEORA81NETWORKADMIN

 

Windows NT client

 

SQL*Net 2.x - ORANTNETWORKADMIN

Net8 - ORANTNET80ADMIN

Net8i - ORACLEORA81NETWORKADMIN

 

 

UNIX Client

 

$ORACLE_HOME/NETWORK/ADMIN

or          /etc

or          /var/opt/oracle

 

 

 . 在客戶端設置TNS_ADMIN 

 

 

在注冊表 HKEY_LOCAL_MACHINESoftwareOracle 設置TNS_ADMIN.  TNS_ADMIN 指向TNSNAMES.ORA文件的位置

 

 

措施:按上述說明檢查文件位置

 

 

 

原因2:(2)TNSNAMES.ORA文件中內容格式不對

 

 

措施:檢查文件格式,標准格式如下:

 

 

DEV1.WORLD =

         (DESCRIPTION = (ADDRESS_LIST =

 

 

               (ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

          (CONNECT_DATA = (SID = ORCL) ) )

 

 

原因3: (3) TNSNAMES.ORA與SQLNET.ORA不一致

 

 

措施: SQLNET.ORA格式如下:

 

 

TRACE_LEVEL_CLIENT = OFF

SQLNET.AUTHENTICATION_SERVICES = (NONE)

NAMES.DIRECTORY_PATH = (TNSNAMES)

AUTOMATIC_IPC = OFF

 

 

因為沒有NAMES.DEFAULT_DOMAIN=world,所以DEV1.WORLD連接串不能連接,可以在TNSNAMES.ORA中增加

 

 

DEV1 =

         (DESCRIPTION = (ADDRESS_LIST =

 

 

               (ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

          (CONNECT_DATA = (SID = ORCL) ) )

 

 

       此時可連接。

2       NL-00462 Error ORA-00462

 

 

特征:監聽器無法啟動

 

 

原因:LISTENER.ORA文件內容錯誤,例如,括號不匹配、參數名錯誤等、多余的空格等。

 

 

措施:重新編輯文件

 

 

3       NL-00405 Error ORA-00405

 

 

特征:LISTENER.ORA文件不可讀或找不到

 

 

原因:LISTENER.ORA文件內容錯誤,例如,括號不匹配、參數名錯誤等、多余的空格等。

 

 

措施:確保文件位置在缺省目錄下$ORACLE_HOME/network/admin,或設置環境變量TNS_ADMIN指向這個文件所在位置。

 

 

4       TNS-01155 Error ORA-01155

 

 

特征:LISTENER.ORA文件中SID_LIST_LISTENER變量賦值不對

 

 

原因:LISTENER.ORA文件內容錯誤,SID_LIST_LISTENER變量賦值不對。

 

 

措施:確保文件中賦值正確,$ORACLE_HOME/network/admin/samples目錄下有樣例文件,可供參考。

 

5       TNS-12537 TNS-12560TNS-00507 Error

 

 

特征:LISTENER.ORA文件中引用了一個無效的協議適配程序

 

 

原因:LISTENER.ORA文件中PROCOTOL變量賦值不對。

 

 

措施:確保文件中賦值正確,一般用TCP協議,$ORACLE_HOME/network/admin/samples目錄下有樣例文件,可供參考。用adapters tnslsnr檢查協議程序

6       TNS-12203 Error

特征:不能與目標連接

原因:監聽器是否啟動;別名是否配置

措施:檢查監聽器是否啟動,例如lsnrctl status;檢查TNSNAMES.ORA的別名配置

7       TNS-12533 Error

特征:不能與目標連接

原因:非法的address參數,

措施:檢查TNSNAMES.ORAADDRESS參數

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

 

 

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

 

 

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

 

 

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

 

 

TCP.NODELAY=YES

 

 

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

 

 

客戶端的字符集在注冊表里定義:        HKEY__LOCAL__MACHINE/SOFTWARE/ORACLE/NLS__LANG

 

 

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

 

2       ORA-01000

 

 

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

 

 

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

 

 

措施:有兩種解決方法:

 

 

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

 

 

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

 

 

3       ORA-01545

 

 

特征:某個回滾段不可用

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

4       ORA-0165x

 

 

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

 

 

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

 

 

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

 

 

      查看空間碎片用DBA_FREE_SPACE

 

 

5       ORA-01555

 

 

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

 

 

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

 

 

措施:增加回滾段數量;

 

 

 

 

 

 

6       ORA-04031

 

 

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

 

 

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

 

 

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

 

 

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

 

 

7       ORA-04091

 

 

特征:觸發器工作不正常

 

 

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

 

 

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

 

 

8       ORA-01242ORA-01113

 

 

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

 

 

原因:介質故障。

 

 

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

 

 

              Startup open recover

 

 

              Alter database open

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM