2017-07-18 78 views
0

我幾個星期前在我的sql server 2016中建立了一個鏈接服務器到我的oracle 12c後面this guide。它工作正常,但一些Windows重新啓動我的機器後,它不再有效。我可以通過sqlplus和sql developer正確登錄到oracle,但不能通過sql server。我收到以下錯誤:如何解決鏈接服務器從SQL Server 2016到Oracle 12c?

OLE DB provider "OraOLEDB.Oracle" for linked server "LINKED_ORACLE" returned message "ORA-12154: TNS:could not resolve the connect identifier specified". 
Msg 7303, Level 16, State 1, Line 1 
Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "LINKED_ORACLE". 

我重新啓動了SQL Server服務,並重新啓動了Windows,但仍出現同樣的錯誤。單次重啓可能會發生什麼變化?我該如何修復它並讓鏈接的服務器再次工作?

回答

0

由於某些原因,SQL SERVER在重新啓動之前正確讀取tnsnames.ora文件,但在重新啓動之後停止。我必須重新創建鏈接的服務器,並將整個連接字符串放在數據源字段中,以使其再次運行。

樣本數據來源找到here

Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= server01.mydomain.com)(PORT=1521)))(CONNECT_DATA=(SID=OracleDB)(SERVER=DEDICATED)));