学习Oracle时,你可能会遇到Oracle.Net问题,这里将介绍Oracle.Net问题的解决方法,在这里拿出来和大家分享一下。由于Oracle数据库通常需要在不同地方被访问,所以Oracle开发人员必须搞清楚数据库性能如何被网络通讯所影响。由Oracle提供的TNS(Transparent Network Substrate)允许不同数据库之间的分布式通讯。
作为一种分布式协议的TNS,允许远距离的系统之间的透明数据库通讯。TNS成为Oracle逻辑数据请求与远距离服务器的物理通讯之间的“绝缘体 (insulator)”。由此,网络管理人员可以控制很多方面的网络性能优化,这样,Oracle管理人员就极少获得影响整个数据库性能的网络设置的控制权。
你可以通过使用一些关键设置来提高分布式处理的性能,这篇文章讨论了一些重要的设置。与分布式通讯相关的init.ora参数,比如tcp.nodelay,能够用于改变Oracle数据库中的信息包传输(packet-shipping)的机制。
本文中我也讨论了sqlnet.ora, tnsnames.ora和protocol.ora文件中的参数。你可以使用这些方法来改变TCP信息包的配置和大小,改变之后的信息包能够对网络透明层产生重要影响,以达到提高整个Oracle交流的目的。
Oracle.NET不能允许Oracle管理人员优化Oracle网络参数以提高网络性能。事实上,绝大部分网络通讯都无法在Oracle环境中得到优化。Oracle.Net是位于特定网络协议栈的OSI模型中的一个层。
为了响应一个数据请求,Oracle.Net 获得数据并传递到协议栈。协议栈然后从这一数据建立一个信息包并传递到网络。Oracle.Net的作用是将数据传送到协议栈。
然而,DBA能够控制网络信息包的频率和大小。在Oracle中存在着丰富的可以更改信息包频率和大小的工具。一个简单的例子就是以更低的频率改变传送更大数量快照的时间间隔。
可以使用不同参数来优化不同服务器之间的Oracle.Net。请记住,网络优化是Oracle范围之外的操作,一个合格的网络管理人员应该经得起各种询问。使用一些设置可以影响网络信息包传送的频率和大小,这些设置包含在以下的参数文件。
◆protocol.ora文件—tcp.nodelay
◆sqlnet.oraserver 文件—automatic_ipc
◆sqlnet.oraclient 文件—break_poll_skip
◆tnsnames.ora文件—SDU, TDU
◆listener.ora文件—SDU, TDU, 以及queuesize
这些优化参数只影响Oracle.Net层的性能。现在让我们仔细地查看这些参数,以及这些参数如何被调整以提高Oracle.Net。
【编辑推荐】