1

我们在 Windows Server 2003 上运行了 oracle 10g。几周前,一台使用该数据库运行应用程序的机器突然开始出现连接问题。今天我们为 windows server 运行了自动更新,问题只会变得更糟。我意识到这对于任何人来说都不足以诊断问题,但也许你可以通过以下更具体的场景让我指出正确的方向:

从这台机器上,我们可以毫无问题地 ping 服务器,并且在物理上靠近并且在 Intranet 上返回非常快。

但是,当我们运行 tnsping 时,我在几分钟内看到了 3 个不同的结果。

  1. tnsping 在合理的时间内返回就好了
  2. tnsping 返回但仅在很长一段时间后(几秒钟)
  3. tnsping 导致 ora-12560 协议适配器错误

同时,我可以毫无问题地从我的机器上 tnsping 服务器。

谁能指出我正确的方向?

4

6 回答 6

1

为了帮助消除等式中的 DNS 问题,请在 TNSNAMES.ora 文件中为您的连接指定主机的 IP 地址,而不是主机名。你在使用 DHCP 吗?

您是否消除了硬件问题 - 您是否尝试过不同的 NIC?

于 2009-02-20T19:27:30.810 回答
1

我会尝试检查以下内容:

  • 从应用服务器和您的机器执行跟踪路由检查是否有任何异常
  • 从其他各种机器检查 tnsping 并尝试识别模式
  • 尝试使用 tcp/ip 嗅探器查看连接两端发生的情况
  • 获得 Oracle 支持
于 2009-02-20T19:55:36.533 回答
1

在让 oracle 参与此问题之前,请从您的网络管理员处获得一些帮助以进行以下测试。首先在侦听器中的数据库上启用详细日志记录。通过 sqlnet 在客户端上启用日志记录。转到出现 tnsping 问题的机器,让网络管理员运行网络工具从那里跟踪 tcp 数据包。执行 tnsping 并查看是否正在发送什么数据包,正在进行什么 dns 查找,正在采用什么路由。在数据库上查看侦听器是否真的收到来自客户端的 ping。如果没有,请查看网络到数据库的哪个位置出现问题。是名称服务器解析吗?是不是网线坏了,交换机端口坏了,等等。您的网络管理员是解决这个问题的最好朋友。使用简单的连接通过 sqlplus 进行相同的测试,然后查看客户端记录的内容。

于 2009-03-10T15:30:42.040 回答
1

在调用 Oracle 之前,我会为 Fail 案例创建一个跟踪文件。

TNSPING.TRACE_LEVEL

目的

使用参数 TNSPING.TRACE_LEVEL 打开、在特定级别或关闭 TNSPING 实用程序跟踪。

默认

离开

值 * off:无跟踪输出 * user:用于用户跟踪信息 * admin:用于管理跟踪信息 * support:用于 Oracle 支持服务跟踪信息

例子

TNSPING.TRACE_LEVEL=管理员

于 2009-02-23T15:13:16.840 回答
0

确保网络上没有其他机器具有相同的 IP 地址。一种方法是将您的机器从网络上拔下,看看您是否仍然可以 ping 它。如果可以,那么这就是问题所在。

于 2009-02-20T19:14:39.673 回答
0

如果服务器没有在 dns 服务器上设置域名,则将其 ip 地址和名称添加到服务器上的主机文件中;这(服务器无法在 dns 中找到自己)已知会导致 tns 超时。

于 2009-02-20T20:15:40.353 回答