所有这些文件都配置 Oracle 网络软件 (SQL*Net,在 Oracle 8 中也称为 Net8)。 这些文件都应该在服务器上的 $ORACLE_HOME/network/admin
目录下创建。
tnsnames.ora
TNSNAMES.ORA
文件标识了从该机器可用的服务。 在我们的实例中,我们将描述服务器已挂载的所有数据库。 对于服务器上的每个数据库实例,添加如下部分
orcl.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = <INSERT HOST NAME OF SERVER HERE> )
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = <INSERT HOST NAME OF SERVER HERE> )
(Port = 1526)
)
)
(CONNECT_DATA = (SID = ORCL)
)
)
listener.ora
listener.ora
文件包含允许其他机器连接的服务描述以及服务器监听器所需的任何配置。
它包含监听器名称、监听器地址、监听器服务的数据库和配置参数的部分。
这是一个示例
# Name of listener and addresses to listen on
LISTENER =
( ADDRESS_LIST =
(ADDRESS =
(PROTOCOL=tcp)
(HOST=<INSERT HOST>)
(PORT=1521)
(COMMUNITY=UK_SUP_TCPIP)
)
(ADDRESS =
(PROTOCOL=ipc)
(KEY=700)
(COMMUNITY=UK_SUP_TCPIP)
)
)
# List of services served by this listener
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=orcl)
(ORACLE_HOME=/home/oracle/7.3.3.0.0)
)
)
# Start of configuration parameters.
TRACE_LEVEL_LISTENER=OFF
TRACE_FILE_LISTENER = "listener"
LOG_FILE_LISTENER = "listener"
CONNECT_TIMEOUT_LISTENER = 10
STOP_LISTENER = YES
DBA_GROUP = dba
sqlnet.ora
sqlnet.ora
文件包含特定网络节点的配置。 这与数据库数量或监听器数量无关。 此文件中最重要的是 Dead Connection Timeout
配置变量。
死连接超时检查每个进入数据库实例的传入进程,并确保它的客户端仍在响应。 如果客户端(无论何种类型)没有响应,则 Oracle 服务器影子进程将被终止。
如果您有许多客户端访问数据库,尤其是在开发阶段,当这些客户端更可能无法从 Oracle 数据库中干净地退出时,这非常有用。
下面是我的 sqlnet.ora
文件副本,供您查阅
TRACE_LEVEL_CLIENT = OFF
sqlnet.expire_time = 30 # The number of seconds between client checks.
names.default_domain = world
name.default_zone = world
现在监听器和 SQL*Net 的配置已完成,我们可以尝试使用网络软件连接到数据库。(之前我们使用的是到数据库的直接链接,而这里我们正在模拟从远程客户端机器的连接)。
要使用上述配置启动监听器
$ lsnrctl
LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:38:25
Copyright (c) Oracle Corporation 1994. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait...
TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora
Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log
Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))
Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
Start Date 23-FEB-98 20:38:50
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP ON
Listener Parameter File /home/oracle/7.3.3.0.0/network/admin/listener.ora
Listener Log File /home/oracle/7.3.3.0.0/network/log/listener.log
Services Summary...
orcl has 1 service handler(s)
The command completed successfully
LSNRCTL> exit
要停止监听器
$ lsnrctl
LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20
Copyright (c) Oracle Corporation 1994. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> stop
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
The command completed successfully
LSNRCTL> exit
如果您有一个 DNS 设置,该设置未返回指定主机名的 IP 地址,则启动和停止监听器可能需要一些时间(2-3 分钟,取决于 DNS 超时变量)。 如果是这种情况,请不要担心,请耐心等待。