一、下面列出幾種常見的鏈接問題:
(1)ORA-12541:TNS:沒有監聽器顯而易見,服務器端的監聽器沒有啓動,另外檢查客戶端IP地址或端口填寫是否正確。啓動監聽器:$lsnrctl start 或 C:lsnrctl start
(2)ORA-12500:TNS:監聽程序沒法啓動專用服務器進程對於Windows而言,沒有啓動
Oracle實例服務。啓動實例服務:C:oradim –startup -sid myoracle
(3)ORA-12535:TNS:操做超時出現這個問題的緣由不少,但主要跟網絡有關。解決這個問題,首先檢查客戶端與服務端的網絡是否暢通,若是網絡連通,則檢查兩端的防火牆是否阻擋了鏈接。
(4)ORA-12154:TNS:沒法處理服務名檢查輸入的服務名與配置的服務名是否一致。另外注意生成的本地服務名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)裏每項服務的首行服務名稱前不能有空格。
(5)ORA-12514:TNS:監聽進程不能解析在鏈接描述符中給出的SERVICE_NAME打開Net Manager,選中服務名稱,檢查服務標識欄裏的服務名輸入是否正確。該服務名必須與服務器端監聽器配置的全局數據庫名一致。
(6)ORA-12518:TNS:監聽程序沒法分發客戶機鏈接。出現該報錯有兩個緣由:在共享模式下是因爲調度進程(dispatchers)太少,在獨佔模式下是因爲進程數(proces ses)超過了數據庫默認的最大進程數。
解決步驟:一、show parameter process查看數據庫容許最大進程數
二、select count(*) from v$session;查看當前系統進程數若是進程數不夠,可經過擴大
PGA來增大進程數:alter system set workarea_size_policy=auto scope=both;
alter system set pga_aggregate_target=512m scope=both;
三、show parameter dispatchers查看調度進程數量若是調度進程太少,則可執行:alter system set dispatchers = '(protocol=tcp)(dispatchers=3)(service=oracle10xdb)';