使用Oracle數(shù)據(jù)庫的朋友經(jīng)常會(huì)碰到的錯(cuò)誤ORA-3113 "end of fileon communication channel" 就是這樣的一個(gè),我們可以簡(jiǎn)單的把這個(gè)錯(cuò)誤理解為Oracle客戶端進(jìn)程和數(shù)據(jù)庫后臺(tái)進(jìn)程連接中斷。不過,導(dǎo)致這個(gè)錯(cuò)誤的原因?qū)嶋H上有很多種,對(duì)數(shù)據(jù)庫設(shè)置不當(dāng)、任何能導(dǎo)致數(shù)據(jù)庫后臺(tái)進(jìn)程崩潰的行 為都可能產(chǎn)生這個(gè)錯(cuò)誤.這個(gè)錯(cuò)誤的出現(xiàn)還經(jīng)常伴隨著其它錯(cuò)誤,比如說: ORA-1034 ORACLE not available。
ora-01034錯(cuò)誤的原因是因?yàn)閿?shù)據(jù)庫的控制文件沒有加在startup mount 后,建議查看oracle數(shù)據(jù)庫的歸檔與否。如果是歸檔的報(bào)錯(cuò)原因可能是因?yàn)闅w檔日志的格式不正確,所以在mount下改變一下歸檔日志的格式(format)具體如下:
alter system set log_archive_dest_1='location=D:\OraHome_1\admin\orcl\arh';
alter system set log_archive_max_processes=3;
alter system set log_archive_format='arh_%t_%s_%r.log' scope=spfile;
alter system set log_archive_format='%t_%s.dbf'
結(jié)果發(fā)現(xiàn)上述方法不能進(jìn)入mount狀態(tài),最大的可能是系統(tǒng)初始化文件出了問題,原來SPFILEORCL.ORA是二進(jìn)制文件,不能直接修改,必須通過命令創(chuàng)建和修改。于是,重建spfile文件(注:找到spfile存放的位置,然后新建一個(gè)spfile文件)具體如下:
SQL> create spfile from pfile='d:\admin\orcl\pfile\init.ora';
文件已創(chuàng)建。
SQL> startup(如果執(zhí)行startup出現(xiàn)ora-01081錯(cuò)誤)如:
遇到ora-01081錯(cuò)誤,我的方法是接著執(zhí)行:
現(xiàn)在可以確定,這個(gè)錯(cuò)誤都是因?yàn)槲臋n無法歸檔的原因,所以接著執(zhí)行:
最后成功連接數(shù)據(jù)庫。
ORA-01034錯(cuò)誤的高手的話:
--Oracle常見錯(cuò)誤之一
這是個(gè)Oracle數(shù)據(jù)庫服務(wù)器比較常見的錯(cuò)誤。有經(jīng)驗(yàn)的用戶幾乎馬上就能解決這個(gè)錯(cuò)誤,再不濟(jì)也能馬上到Metalink(http://metalink.oracle.com)去搜索一下。
不幸的是,大多的時(shí)候,都是初級(jí)用戶遇到的這樣的問題(對(duì)他們提Metalink也起不到什么作用--一般都沒有上面的帳號(hào):))。
所以,這個(gè)小帖子可能還有一定的作用。
問題描述
=======
在試圖啟動(dòng)數(shù)據(jù)庫的時(shí)候,Oracle報(bào)告下列錯(cuò)誤:
ERROR:
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available
基本解釋
=======
Error: ORA-27101
Text: shared memory realm does not exist
-------------------------------------------
Cause: Unable to locate shared memory realm
Action: Verify that the realm is accessible
如何解決
=======
這個(gè)問題其實(shí)用一句話就可以說清楚:
ORACLE_HOME或者ORACLE_SID設(shè)置不正確。
在以前的版本中,如果ORACLE_SID不正確,一般都只提示ORA-01034。Oracle 8.1.7 給出一個(gè)額外的信息:ORA-27101。
->如果是Unix,在Shell里把ORACLE_SID設(shè)置正確即可(注意大小寫敏感的問題)。
此外,檢查ORACLE_HOME環(huán)境變量。如何檢查參考如下的命令:
% echo $ORACLE_SID
% PS -ef |grep smon
->如果是Windows,一般都是因?yàn)橄到y(tǒng)中有多個(gè)實(shí)例造成的。
可以在命令行下 C:/>set ORACLE_SID=DEMO
把這里的DEMO換為你相應(yīng)的實(shí)例名。
如果還不行的話,檢查注冊(cè)表中的ORACLE_HOME。
此外,在Windows環(huán)境下有的時(shí)候連接不上遠(yuǎn)程的數(shù)據(jù)庫,會(huì)報(bào)告如此的錯(cuò)誤。
解決辦法是把sqlnet.ora文件中的
SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS換為NONE.