非常多時候為了優化我們的啟動項把oracle的服務禁止了。但是重新啟動啟動之后使用PLSQL登陸oracle時會出現無監聽程序,這說明我們有一些服務沒有啟動。我們先查看一下oracle的服務是否啟動,查看方法是計算機-->>管理-->>服務和應用程序-->>服務,進行查找oracle的啟動服務,
進入之后詳細情況例如以下圖:
在這里能夠看到oracle的啟動服務OracleServiceORCL和OracleOraDb11g_home1TNSLister,OracleDBCConsoleorcl等啟動項都是沒有啟動,在這里把我上圖中紅色矩形框內的服務啟動就能夠了。
在oracle11成功安裝之后,用PLSQL 登陸的時候提示ORA-12541: TNS:無監聽程序。無法進行登陸。在這里總結了一下解決此類的辦法,希望能夠幫到大家。
第一種方法:因為地址分配不正確。我們這里須要又一次配置一下本機的環境。
從oracle的安裝環境中找到network,如圖:
我的oracle安裝到了D盤。所以你依據自己安裝路徑進行尋找,比如:D:\app\Administrator\product\11.2.0\dbhome_2\NETWORK
LISTENER_ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
ORACLR_CONNECTION_DATA=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
改動后的代碼{
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
把里面的localhost改動成電腦隨機生成的IP。
機名輸入localhost或127.0.0.1都會提示無監聽程序。
因為自己主動分配的IP地址會有變動,所以將oracle值中的host改成本機的計算機名。保存改動后的tnsnames.ora。再次連接(10.1.10.183/orcl)數據庫。出錯問題解決。
另外一種方法是詳細查看oracle的系統。
詳細流程例如以下:
第一步:查看oracle的log日志。
發現以下錯誤:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:25:26
Copyright (c) 1991,2005, Oracle. All rights reserved.
系統參數文件為D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
寫入D:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟蹤信息
跟蹤級別當前為0
監聽:
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
監聽該對象時出錯:(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))
TNS-12545: 因目標主機或對象不存在,連接失敗
TNS-12560: TNS: 協議適配器錯誤
TNS-00515: 因目標主機或對象不存在,連接失敗
32-bit Windows Error: 49: Unknown error
不再監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
第二步:查看oracle的監聽程序是否啟動
進入dos窗體。快捷鍵是 菜單鍵+R。輸入cmd。在dos窗體中輸入lsnrctlstatus 查看你的執行狀態。假設結果例如以下:
LSNRCTL for 32-bitWindows: Version 10.2.0.1.0 - Production on 20-9月 -2008 10:5
0:44
Copyright (c) 1991,2005, Oracle. All rights reserved.
正在連接到(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS: 無監聽程序
TNS-12560: TNS: 協議適配器錯誤
TNS-00511: 無監聽程序
32-bit Windows Error: 2: No such file or directory
正在連接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.5.0.5)(PORT=1521)))
TNS-12535: TNS: 操作超時
TNS-12560: TNS: 協議適配器錯誤
TNS-00505: 操作超時
32-bit Windows Error: 60: Unknown error
第三種:重置監聽程序,以及配置本地網絡名稱
我的電腦是window 7,所以從開始菜單中找到oracle的安裝文件夾,找到Net Configuration Assistant打開之后,進行配置。主要配置是都過oracle自帶的管理工具實現的,詳細例如以下圖:
這里的圖片用的是網上搜尋的,只是方法我都使用了。由於那時候問題真的非常多,換了好幾種方法。很多其它的知識朋友們能夠搜尋一下我的公眾平台:牧笛助手,賬號:MuDi_Assistant,近期剛開始籌建。打算分享學習中的案例已經各種問題bug的解決方法。掃一掃二維碼: