[oracle@aa ~]$ cd /oracle/db/network/admin/
[oracle@aa admin]$ ls
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora
[oracle@aa admin]$ mv listener.ora listener.ora.bak
[oracle@aa admin]$ mv tnsnames.ora tnsnames.ora.bak
服务端配置监听,接受人家的连接
[oracle@aa admin]$ vim listener.ora
# listener.ora Network Configuration File: /oracle/db/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/db)
(SID_NAME = ORCL)
)
(SID_DESC =
(GLOBAL_DBNAME = bill)
(ORACLE_HOME = /oracle/db)
(SID_NAME = BILL)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = aa.ly.com)(PORT = 1521))
)
客户端连接其他服务器,则需要配置
[oracle@aa admin]$ vim tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
o100 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.100)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
o83 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.83)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
o180 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.180)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
teacher =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.213)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
[oracle@aa ~]$ lsnrctl start 服务端启动监听还要启动实例
=============================================================
动态监听和静态监听
动态监听就是把本机的实例写入tnsnames.ora。tnsnames.ora还可以当作客户端访问服务端的配置文件。如果写的是本机的实例,就是动态监听本地。如果写的是远端的服务器,就是访问服务端的配置文件。监听的状态如果连接上就是ready,断开连接就是unknow
静态监听就是把本机的实例写入listener.ora.状态一直是unknow.
一个连接要服务端要配置listener.ora,并且开启监听。客户端配置tnsnames.ora好之后,就可以访问了。
看监听的情况对不对,要考虑三个原因。 1.IP地址与主机名是否对应。 2.监听文件是否填写正确。 3.服务端是否开启了监听和实例,以供客户端访问。