BEQ 方式连接配置,服务端和客户端在同一台机器上,可以使用 BEQ 连接,BEQ 连接可以理解为进程间直接通信,不需要走网络监听,性能更高。
可以参考 MOS:How To Connect Using the Bequeath Protocol (BEQ) in 8I (文档 ID 181317.1)
例如,我们在 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 协议连接的。
来源: