最近公司斷電的情況下,發現linux下的oracle資料和監聽程式正常啟動後,用戶端的plsql仍然無法串連上伺服器,報ORA-12514錯誤,
發現一般情況下,oracle伺服器在安裝的時候,監聽設定檔listener.ora中可以不必指定監聽的服務名(預設也是沒有指定監聽的服務名的),但是一旦你的資料庫服務和監聽服務關閉了,
再重新啟動資料庫服務和監聽服務的時候,使用plsql串連資料庫,就會出現ORA-12514問題,這時我們必須在listener.ora檔案中配置相應的服務。然後重新啟動資料庫和監聽服務,這時監聽程式時會將listener的中指定的服務註冊到進程監視器(pmon)中,plsql就可以正常串連資料庫了。
使用到的指令碼命令:
linux環境:
1. 修改listener.ora檔案
預設情況下該檔案內容:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 你的伺服器IP地址)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
出現ORA-12514的問題時候,我們需要增加的服務配置:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora11g)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.1.0/db_1)
(SID_NAME = ora11g)
)
)
2. 啟動相關資料庫和監聽服務
以oracle身份登入資料庫: su - oracle
進入 sqlplus 控制台:sqlplus /nolog
以系統管理員登入:connect / as sysdba
關閉資料庫:shutdown immediate
退出sqlplus控制台:exit
進入監聽器控制台:lsnrctl
關閉監聽器:stop
啟動監聽器:start
退出監聽控制台:exit