詳細(xì)講解Oracle數(shù)據(jù)庫運行錯誤的解決方法
Oracle數(shù)據(jù)庫運行錯誤的解決方法:
錯誤1:ORA-01034: ORACLE not available
Oracle安裝、啟動后用sqlplus '/ as sysdba' 登陸,執(zhí)行任何select語句都出現(xiàn)錯誤:
select * from dictionary
*
ERROR at line 1:
ORA-01034: ORACLE not available
但是用toad等客戶端工具正常!
為什么sqlplus不行呢?
另,我用的是:
oracle9
redhat as 4
解決方法:
更改一下linux用戶的環(huán)境變量ORACLE_SID就可以了。
錯誤2:ORA-27101: shared memory realm does not exist
我試圖連接數(shù)據(jù)庫時的ORA-01034 和 ORA-27101錯誤信息,它總是顯示這樣的信息,“ORA-01034 - Oracle not available”和“ORA-27101 - shared memory realm does not exist”。
不能連接到我的Oracle 數(shù)據(jù)庫上。
因為碰到防火墻的問題次數(shù)比較多,這次也先看看,發(fā)現(xiàn)根本就沒什么攔截的。查看了一下監(jiān)聽,數(shù)據(jù)庫實例也是運行著的。
奇怪的事情,剛才還好好的,重啟了機(jī)器就不行了。
解決方法:解決的方法倒是不麻煩...
首先看一下 ORACLE_BASEORACLE_HOMEDATABASE 下面的 ORADIM.LOG 文件
如果里邊有這個錯誤
ORA-12640: 驗證適配器初始化失敗
那么問題就是它了.
到ORACLE_BASEORACLE_HOMENETWORKADMIN下面找sqlnet.ora文件
把sqlnet.authentication_services=(NTS) 改成
sqlnet.authentication_services=(NONE)
然后手動重起一下你的哪個數(shù)據(jù)庫服務(wù)..在開始->控制面板->管理工具->服務(wù)里然后把這個服務(wù)的啟動帳號改成你的帳號吧...其實不改大概也沒有毛病.我就沒改。。
看了這個方法,出錯的原因大概有兩種情況,修改了帳戶,實例有些變動等。
如果還不行,重啟電腦試試.
ERROR - ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
關(guān)于“ORA:12541:TNS 沒有監(jiān)聽器” 的問題
1.看看是不是監(jiān)聽服務(wù)沒有起來
2.檢查有沒有修改IP地址,計算機(jī)名稱
對于2,一般情況下是機(jī)器的IP地址更改了,我就碰到過這種情況,oracle10g的安裝是在沒有聯(lián)網(wǎng)的狀態(tài)下,結(jié)
果聯(lián)上網(wǎng)后OracleDBConsole*服務(wù)啟動不了,在此情況下我的解決方案是斷網(wǎng)啟動服務(wù)就好用了.
其實問題在于初始配置的監(jiān)聽/服務(wù)中的主機(jī)信息與現(xiàn)在的信息不符,如果要改便主機(jī)IP/名稱的話,也必須同時
修改oracle中的相應(yīng)配置,否則oracle找不到主機(jī)當(dāng)然啟動不了。
必須啟動的服務(wù):OracleOraDb10g_home1TNSListener(監(jiān)聽器),OracleService[sid]這兩項,后者可選為手動
啟動(因為吃資源厲害).
后來又遇到OracleOraDb10g_home1TNSListener服務(wù)無法啟動的問題,google了下原來是被優(yōu)化大師清注冊表時干掉的,服務(wù)啟動路徑要在注冊表中添加。
方法如下:
看HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesOracleOraHome92TNSListener有無ImagePath的字符串,沒有的話就加一個,值為..oracleproduct10.1.0db_1TNSLSNR(不只一處).類似還有,優(yōu)化大師干掉VS2003中的.NET framework的注冊表信息,當(dāng)時我重裝了。
Windows下默認(rèn)完成后不用填寫主機(jī)字符就可以直接用戶名密碼登錄。
