剛開始時,有一臺伺服器的ORACLE 11G資料庫連接不上,報錯:ORA-12541:TNS:無監聽程式,解決之後碰到ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exist,最後又碰到ora-00119:... ...
剛開始時,有一臺伺服器的ORACLE 11G資料庫連接不上,報錯:ORA-12541:TNS:無監聽程式
重啟服務裡面的兩個Oracle服務,都沒解決。
在網上看到一篇文章說另一種可能是oracle目錄目錄下listener.log日誌文件過大(達到4G,據說這是oracle在windows系統下的bug)導致的。
搜索找到listener.log,果然文件已經是4GB。
於是停止服務裡面的Oracle監聽服務,重命名listener.log做備份,例如listener.log.bak。
啟動Oracle監聽服務,會自動生成一個新的listener.log。
PLSQL連接資料庫,這次卻報了另一個錯誤:
ORA-01034:ORACLE not available
ORA-27101:shared memory realm does not exist
解決過程:
資料庫所在伺服器,cmd命令行中
1、輸入:
sqlplus /nolog
2、輸入:
conn /as sysdba
3、輸入:
startup
這時報錯:
ora-00119:invalid specification for system parameter LOCAL_LISTENER
ora-00132:syntax error or unresolved network name 'LISTENER_ORCL'
4、找到init.ora.1112015105811(1112015105811每台機器不一樣),路徑在
D:\app\lc\admin\orcl\pfile\init.ora.1112015105811
先複製一份做備份,用記事本打開init.ora.1112015105811,找到下麵行
local_listener=LISTENER_ORCL
把LISTENER_ORCL修改為tnsnames.ora中的ADDRESS_LIST的值,如下(HOST值根據實際修改)
local_listener="(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.1.100)(PORT = 1521))"
5、回到命令行視窗中,輸入:
create spfile from pfile = 'D:\app\lc\admin\orcl\pfile\init.ora.1112015105811';
6、輸入:
startup
這次終於沒報錯了,提示:ORACLE常式已經啟動。用PLSQL成功連接資料庫。