1、TNS連接錯誤
連接oracle數據庫報錯ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
2、查看本地TNSPING
查看本地E:\oracle\product\11.2.0\db_1\BIN\NETWORK\ADMIN\tnsnames的tns配置:
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
查看本地的tnsping是ok的
C:\Users\Administrator>tnsping orcl
若連接不上,查看tnsnames.ora文件配置是否正確
本地的tnsping暫時看來是正常的,是ok的。
3、查看網絡連接
ping 本地ip,也是能進去的,證明網絡ok
4、查看服務器的lsnrctl服務
去服務器看lsnrctl狀態:lsnrctl status
看到no services,也就是說lsnrctl監聽服務啟動起來,沒有任何oracle實例的,所以問題就來了,沒有oracle實例,客戶端通過lsnrctl監聽的話,就連接不到實例信息。所以這里我們需要添加實例信息,添加實例信息,就在listener.ora配置文件里面。
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\oracle\product\11.2.0\db_1\BIN)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC201709030339)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = e:\oracle\app\Administrator
ORCL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.67.155)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
5、在listener.ora里面添加實例信息
完善listener.ora配置:
若添加實例還,顯示“監聽程序當前無法識別連接描述符中請求的服務”錯誤的話,服務中,查看該數據庫的服務是否存在,重新建立服務或者重新建立數據庫就行
設置完后,重啟監聽lsnrctl服務,可以看到會有一個instance服務啟動起來了:
Isnrctl status 查看服務起來的動態,及里面存在幾個實例(數據庫)。