我使用 Oracle Provider for OLE DB 和 TNSNAMES.ORA 在 SQL Server 2012 中创建了一个链接的 Oracle 服务器(Oracle 数据库是集群的,据我所知,没有其他连接方法适用于集群服务器)。这很好用。
现在 Oracle 数据库已经移动到另一个集群,所以我编辑了 TNSNAMES.ORA。Oracle SQL Developer 工作正常。
似乎 SQL Server 不会重新读取 TNSNAMES.ORA,而是在内部存储连接详细信息,因为即使在服务器重新启动后,所有查询也会超时。
有谁知道除了删除和重新创建链接服务器之外的解决方案吗?
(这就是我为解决问题所做的,但它不应该那么难!)
你如何解决问题就是解决问题的方法,因为我们无法修改链接服务器。SQL Server 不读取 tnsnames.ora。
虽然解决方案是删除并重新创建,但我们可以使用 SQL Management Studio 来编辑删除和创建脚本,如下所示:
1. 右键单击链接服务器。
2. 选择
Script Linked Server as
。3. 选择
New Query Editor Window
。4. 现在我们可以根据需要修改脚本并运行了。
这只是删除并重新创建链接服务器。
谢谢
是的,有必要删除并重新创建链接服务器。这只需片刻,因此命中非常小。
同样,没有理由相信 SQL Server 会尝试读取不同关系数据库的内部内容。