2017-07-18 150 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)));