oracle-ORA-00942錯誤


 表或視圖不存在

       原因:1.表或視圖真的不存在 2.用戶沒有訪問該表的權限。

ORA-01078: 處理系統參數失敗

ORA-01438: value larger than specified precision allows for this column

ORA-01441: cannot decrease column length because some value is too big

ORA-01536: space quota exceeded for tablespace 'ODS'

ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$" too small

       對ORA-01555的精彩解釋

       1、在1點鍾,有個用戶A發出了select * from table1;此時不管將來table1怎么變化,正確的結果

         應該是用戶A會看到在1點鍾這個時刻的內容。這個是沒有疑問的。

       2、在1點30分,有個用戶B執行了update命令,更新了table1表中的第4000萬行的這條記錄,這時,

          用戶A的全表掃描還沒有到達第4000萬條。毫無疑問,這個時候,第4000萬行的這條記錄是被寫

          到了回滾段里去了的,我假設是回滾段RBS1,如果用戶A的全表掃描到達了第4000萬行,是應該

          會正確的從回滾段RBS1中讀取出1點鍾時刻的內容的。

       3、這時,用戶B將他剛才做的操作commit了,但是這時,系統仍然可以給用戶A提供正確的數據,

          因為那第4000萬行記錄的內容仍然還在回滾段RBS1里,系統可以根據SCN來到回滾段里找到正確的

          數據,但是大家注意到,這時記錄在RBS1里的第4000萬行記錄已經發生了一點重大的改變:就是

          這個第4000萬行的在回滾段RBS1里的數據有可能隨時被覆蓋掉,因為這條記錄已經被提交了!!!

       4、由於用戶A的查詢時間漫長,而業務在一直不斷的進行,RBS1回滾段在被多個不同的tracnsaction

          使用着,這個回滾段里的extent循環到了第4000萬行數據所在的extent,由於這條記錄已經被標記

          提交了,所以這個extent是可以被其他transaction覆蓋掉的!

       5、到了1點40分,用戶A的查詢終於到了第4000萬行,而這時已經出現了第4條說的情況,需要到回滾

          段RBS1去找數據,但是已經被覆蓋掉了,於是01555就出現了。

       以上只是我當初在看OCP書的時候,對這個01555的一個簡單的理解,並同時可以理解書上說的解決

       ora-01555的問題的辦法,當然可能還有其他的情況導致,我只舉個例子。

ORA-08180: no snapshot found based on specified time

ORA-27101: shared memory realm does not exist

       解決方法

              修改注冊表中的鍵值LocalMechine\software\oracle\home0\ORACLE_SID為你的SID

              ID                                       0

              MSHELP_TOOLS                    D:\oracle\ora90\MSHELP

              NLS_LANG                            SIMPLIFIED CHINESE_CHINA.ZHS16GBK

              ORA_HNDSS_AUTOSTART       TRUE

              ORA_HNDSS_PFILE                D:\oracle\ora90\database\initHNDSS.ora

              ORA_HNDSS_SHUTDOWN       TRUE

              ORA_HNDSS_SHUTDOWN_TIMEOUT      30

              ORA_HNDSS_SHUTDOWNTYPE       i

              ORACLE_BASE  D:\oracle

              ORACLE_BUNDLE_NAME  Enterprise

              ORACLE_GROUP_NAME          Oracle - OraHome90

              ORACLE_HOME                     D:\oracle\ora90

              ORACLE_HOME_KEY              Software\ORACLE\HOME0

              ORACLE_HOME_NAME            OraHome90

              ORACLE_SID                         hndss

              RDBMS_ARCHIVE                   D:\oracle\ora90\DATABASE\ARCHIVE

              RDBMS_CONTROL                  D:\oracle\ora90\DATABASE

              SQLPATH                             D:\oracle\ora90\db

       描述

              剛在professionall裝了9i,在sql*plus用system/manager連接能正常使用。

              過了一會兒再用就報錯如下:

              SQL*Plus: Release 9.0.1.0.1 - Production on 星期三 2月 18 08:32:40 2004            

              (c) Copyright 2001 Oracle Corporation.??All rights reserved.              

              ERROR:

              ORA-01034: ORACLE not available

              ORA-27101: shared memory realm does not exist             

              記得當時重啟后系統提示虛擬頁面不足,重新分配了c和d盤的虛擬頁面,難道這也有問題???

              原因:

              原因是在同一個服務器上,使用了不同的ORACLE_HOME

              首先檢查文件initSID.ora和listener.ora等,看ORACLE_SID和ORACLE_HOME設置的正確與否,ORACLE8.1.7是否用該參數值啟動並運行。在UNIX環境中,字母大小寫的意義是不一樣的,這一點應當注意。如果ORACLE_HOME指向8.1.7版,而數據庫是用8.1.6版或8.1.5版建立的,也可能出現該種錯誤信息。

              在WINDOWS系統中,如果修改了機器名或IP地址,ORACLE8.1.7啟動時使用的機器名或IP地址就不是真正的機器名或IP地址,就會出現該種錯誤。可以查看目錄database下的文件oradim.log,根據內容確定原因    


免責聲明!

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



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