表或視圖不存在
原因: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,根據內容確定原因
