Oracle网络配置参数

Oracle数据库在不同的地域被人们广泛使用,所以就必须要有专业的Oracle人员懂得网络连接是怎么样影响数据库性能的。Oracle提供的 

TNS允许在每个数据库中进行分配通信。TNS服务器被看作Oracle的逻辑数据请求中的绝缘体和远程服务器间的服务器

。同样的,网络管理员有能力控制网络性能调谐性,但是Oracle管理员没有控制影响数据库性能的网络设置的权利。

可以利用下面我所说的重要的设置来改变分布式事物元的性能。其中包括了sqlnet.ora, tnsnames.ora, 和 protocol.ora文件中的参数, 

这些参数可以被用做改变设置和TCP包的大小,并且调整这些参数可以影响根本的网络传输层以便改变Oracle事物元的吞吐量。

正如刚才所说,Oracle网不允许Oracle专业人员调整根本的网络传输层,并且大多数的网络流量不能在Oracle环境中被改变。记住,Oracle 

网络是一个在OSI模型中的网络层,这个网络层存在于网络协议栈上。

但是,网络信息包的频率和大小可以被Oracle DBA来控制。Oracle有大量的工具来改变信息包的频率和大小。

在服务器间的Oracle网络连接可以用几个参数来调谐。但是,你一定要记住,网络的调谐一定要在Oracle的外面并且一个有资格的网络管理 

员必须有在被商议后才可以调谐网络。信息包的频率和大小可以受到下面参数文件的设置的影响。

・sqlnet.ora服务器文件――automatic_ipc参数

・sqlnet.ora 客户文件―break_poll_skip 参数

・tnsnames.ora 和 listener.ora 文件―SDU 和 TDU 参数

・protocol.ora 文件―tcp.nodelay 参数

这些调谐参数仅仅影响Oracle网络层的性能。让我们来详细的解释一下它们并看看它们怎么被调整用来改变Oracle网络吞吐量。

protocol.ora文件中的tcp.nodelay参数

在传输数据之前Oracle网络默认等待直到缓冲器被填满。因此,需求不能被立即送到它们的目的地。当大量的数据从一个地方送到另外一个 

地方的时候这个是最普通的了。Oracle网络不能传送信息包直到缓冲器满了。添加一个protocol.ora 文件和指定一个tcp.nodelay 停止缓 

冲器的延迟可以修补这个缺陷。

protocol.ora文件可以被指定用来说明所有TCP/IP实现的无数据缓冲。这个参数可以被用在客户和服务器端。protocol.ora语句是这样的:

tcp.nodelay = yes

指定这个参数可以使TCP缓冲器被跳过这样每个请求就可以很快的被送到。但是请记住,由于更小和更频繁的信息包的传送导致网络流量的 

增加,这样就会降低网络的速度。

tcp.nodelay

tcp.nodelay参数仅仅在TCP遭遇超时设定的时候被使用。当在数据库服务器之间有大量的流量时设置tcp.nodelay可以导致在性能上巨大的 

改变。

sqlnet.ora文件中的automatic_ip参数

   automatic_ipc参数迂回于网络层,所以它可以给本地连接到数据库加速。当automatic_ipc=on的时候,Oracle网络会检查本地数据库是 

否被定义成相同的别,如果有,当连接被直接转化成本地ICP连接的时候网络层被回避。这个在数据库服务器上是非常有用的,但是对于 

Oracle网络用户来说这个一点用都没有。

当Oracle网络连接必须被当作本地数据库时,automatic_ipc参数仅仅应该被用在数据库服务器上。如果不需要本地连接的时候,将这个参 

数设置成off,通过利用这个设置,所有的Oracle网络可以可以改善其性能。

tnsnames.ora文件中的SDU和TDU

SDU和TDU参数位于tnsnames.ora 和 listener.ora文件中。SDU指定送入网络的信息包的大小,理论上,SDU不应该超过MTU最大值的大小。 

MTU依赖一个现实的网络实现上,它是一个不变值。SDU在Oracle中的地位和MTU一样。

在Oracle的网络中,TDU的信息包的大小是一个默认值。理想状态下,TDU参数应该被定义为SDU参数的一倍。SDU和TDU默认的值的大小是 

2048,最大值是32767字节。

下面是使用SDU和TDU的方针:

・SDU永远不要设置的比TDU大,因为你将浪费掉网络资源空间。

・如果你的用户是通过调制调解器来上网,你应该将SDU和TDU的值设置的小一点,因为频繁的再发送会经常发生在调制调解器的线路上。

・在宽带连接中,你应该将你的网络SDU和TDU的值和MTU的值设置得大小一样。在标准的以太网络中,默认的MTU大小是1514字节,在标准的 

令牌环形网中,MTU默认值大小是4202。

・如果MTS被使用,你必须利用适当的MTU,TDU设置来设置mts_dispatchers。

在主机之间,SDU和TDU设置是连接速度的直接函数。例如T1,设置SDU=TDU=MTU。对于速度慢的调制调解器来说,最好使用值较小的SDU和 

TDU。

listener.ora文件中的Queuesize参数

当Oracle正在建立的连接的时候,这个连接由queuesize参数来确定。这个参数仅仅被大容量的数据库使用。人们期待同时发生的连接的大 

小必须和queuesize参数的大小相等。这里是一个listener.org文件中的关于使用这个参数的例子:

LISTENER =

     (ADDRESS_LIST =

           (ADDRESS =

             (PROTOCOL = TCP)

             (HOST = marvin)

             (PORT = 1521)

            (QUEUESIZE = 32)

           )

     )

这个参数的一个缺点就是它会为预计的请求分配参数,因此,会使用更多的内存和资源。如果你需要使用大容量连接你就要考虑使用MTS。 

同时,注意一些UNIX的版本不允许使用的队列超过5,并且还有关于MTS队列大小的限制。

性能

      尽管大多数信息包的流量都被调谐好了,但是正确的Oracle网络参数设置将给分布式系统的性能带来巨大影响。对于使用Oracle的专 

业人员来说,他们必须完全明白其性能和优化这些重要的参数。

你可能感兴趣的:(oracle,Oracle网络,Oracle网络配置参数)