代码改变世界

Oracle BEQ方式连接配置

2017-01-24 18:08  AlfredZhao  阅读(...)  评论(...编辑  收藏

Oracle BEQ方式连接配置

服务端和客户端在同一台机器上,可以使用BEQ连接,BEQ连接可以理解为进程间直接通信,不需要走网络监听,性能更高。

可以参考MOS:How To Connect Using the Bequeath Protocol (BEQ) in 8I (文档 ID 181317.1)

Beq connection can be used between client and server on the same machine.
Connection is not using listener, so no listener configuration is required.
In tnsnames.ora add tns alias:
=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = BEQ)
(PROGRAM = )
(ARGV0 = oracle)
(ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')
(ENVS = 'ORACLE_HOME=,ORACLE_SID=
')
)
)
(CONNECT_DATA = (SID = ))
)

Under Microsoft Windows operating systems PROGRAM should contain only "
oracle":
(PROGRAM = oracle)
without any path or suffix.
For example, connecting to T816 through BEQ protocol with ORACLE_HOME=
/u08/oracle/product/8.1.6/bin/oracle
can be done using folowing tns alias:
T816-BEQ.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = BEQ)
(PROGRAM = /u08/oracle/product/8.1.6/bin/oracle)
(ARGV0 = oracleT816)
(ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')
(ENVS = 'ORACLE_HOME=/u08/oracle/product/8.1.6,ORACLE_SID=T816')
)
)
(CONNECT_DATA = (SID = T816))
)
To connect to T816 using Bequeth protocol now use:
sqlplus system/manager@T816-BEQ

例如,我们在10.2.0.5 RAC的实例1上配置BEQ连接测试

1. 在tnsnames.ora 配置文件添加如下内容:

RACBEQ =
  (DESCRIPTION =
    (ADDRESS = 
      (PROTOCOL = BEQ)
      (PROGRAM = /u01/app/oracle/product/10.2.0.5/dbhome_1/bin/oracle)
      (ARGV0 = oraclejyrac1)    
      (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')
      (ENVS = 'ORACLE_HOME=/u01/app/oracle/product/10.2.0.5/dbhome_1,ORACLE_SID=jyrac1')
    )
    (CONNECT_DATA =
      (SERVICE_NAME = jyrac)
      (INSTANCE_NAME = jyrac1)
    )
  )

2. tnsping 测试通:

[oracle@oradb27 admin]$ tnsping racbeq

TNS Ping Utility for Linux: Version 10.2.0.5.0 - Production on 24-JAN-2017 18:05:48

Copyright (c) 1997,  2010, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = BEQ) (PROGRAM = /u01/app/oracle/product/10.2.0.5/dbhome_1/bin/oracle) (ARGV0 = oraclejyrac1) (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))') (ENVS = 'ORACLE_HOME=/u01/app/oracle/product/10.2.0.5/dbhome_1,ORACLE_SID=jyrac1')) (CONNECT_DATA = (SERVICE_NAME = jyrac) (INSTANCE_NAME = jyrac1)))
OK (30 msec)

3. 本地通过BEQ协议连接到数据库:

[oracle@oradb27 admin]$ sqlplus system/oracle@racbeq

SQL*Plus: Release 10.2.0.5.0 - Production on Tue Jan 24 17:37:08 2017

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> !ps -ef|grep BEQ
oracle    8102     1  0 17:37 ?        00:00:00 oraclejyrac1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))
oracle    8133  8100  0 17:37 pts/3    00:00:00 /bin/bash -c ps -ef|grep BEQ

SQL> 

上面查看进程也可以确定进程确实是通过BEQ协议连接的。