最近在red hat 6.6虛擬機上安裝了Oracle 11gR2數據庫,安裝完畢,使用沒有問題,通過主機也可以訪問到虛擬機上的數據庫。然而,在重新啟動虛擬機后,主機無法訪問到數據庫,提示錯誤:
PS C:\Users\13842> sqlplus sys/Lijiaman3102700@orcl as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期六 2月 25 16:56:47 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-12541: TNS: 無監聽程序 請輸入用戶名:
發現沒有監聽程序,於是到虛擬機上查看監聽器狀態,結果如下:
LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 2: No such file or directory Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused
發現是監聽器沒有啟動,啟動即可:
[oracle@localhost Desktop]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-FEB-2017 18:13:56 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /home/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /home/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Log messages written to /home/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 25-FEB-2017 18:13:56 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /home/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) The listener supports no services The command completed successfully
啟動之后,新的問題又出現了,在倒數第2行,提示:The listener support no services。說明Oracle的服務並沒有注冊到監聽器,這時,使用主機上的客戶端連接數據庫,會提示錯誤:
ERROR: ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
接下來配置監聽服務信息,在虛擬機上打開網絡管理界面:
[oracle@localhost Desktop]$ netmgr
出現如下界面,點擊Local->Listeners->Listener->Database Services->Add Database:
三個參數設置:
· Global Database Name:
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------- ORCL
· Oracle Home Dictionary: Oracle安裝路徑,一般為:../app/oracle/product/11.2.0/dbhome_1
· SID:默認ORCL
點擊File->Save network Configuration。
重啟數據庫,解決。