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:
<NET_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協議連接的。