为了使得外部进程,如topicis后台程序,能够访问 Oracle 数据库,必须配置 Oracle 网络服务器环境,配置 Oracle 网络服务器环境是通过配置 listener.ora sqlnet.ora 和tnsnames.ora 共三个文件来进行的
监听配置文件 listener.ora 的存放路径为 $ORACLE_HOME/network/admin
以下是一个示例
LISTENER = #监听器名称
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS =
(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 2481))
)
)
SID_LIST_LISTENER =
###命名规则 SID_LIST_+上面定义的监听器名称,该段用于定义监听器的服务 即为哪些数据库实例提供监听服务
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc1)
(ORACLE_HOME = /u01/app/oracle/product/8.1.7)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = topicis)
(ORACLE_HOME = /u01/app/oracle/product/8.1.7)
(SID_NAME =topicis)
)
(SID_DESC =
(GLOBAL_DBNAME = oid)
(ORACLE_HOME = /u01/app/oracle/product/8.1.7)
(SID_NAME = oid)
)
)
1 listener.ora 文件中定义一个监听器 其缺省的名称为 LISTENER。这个监听器缺省以tcp/ip为协议地址且端口号为1521运行,在CAMS应用中监听文件定义的监听器就使用这个缺省名字,并且使用缺省的协议tcp/ip和缺省的端口号1521。
待配置好监听文件以及随后说明的 sqlnet.ora 和tnsnames.ora 文件之后 就可以用以下命令将监听文件中定义的监听器启动起来: $ lsnrctl start
停止监听器的命令为$ lsnrctl stop;监测监听器当前状态的命令为$ lsnrctl status。
当 lsnrctl status 命令有如下输出结果:
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 8.1.7.4.0 - Production
Start Date 17-JAN-2004 19:00:08
Uptime 31 days 15 hr. 27 min. 59 sec
就说明监听器正在运行,否则说明监听器已经停止了。
2 如(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))所示的一个IPC 协议地址的监听 是为了外部进程调用用的 在数据库安装时自动设定不需要改动
3 在监听文件后部还有一个SID_LIST_LISTENER 段 该段用于定义监听器的服务,即为哪些数据库实例提供监听服务 以 topicis实例为例,其对应的服务信息为:
(SID_DESC =
(GLOBAL_DBNAME =topicis) #数据库名
(ORACLE_HOME = /u01/app/oracle/product/8.1.7)
(SID_NAME =topicis) #数据库实例名