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