oracle监听配置文件tnsnames.ora

已邀请:
addressname=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host =hostname )(Port =port ))
   )
(CONNECT_DATA =
(SERVICE_NAME =sid )
)

addressname是自定义的名字。就是把下面的连接特定IP+端口+数据库实例的这个连接命名一下,连接时就直接用该名字来指定连接。

hostname 可以是主机名,可以是IP.填写数据库服务器所在机器IP。如在本机则为127.0.0.1或localhost

port 默认为1521.这个端口是oracle数据库服务端口号

sid 是数据库实例名,你要连接的数据库实例。


tnsnames.ora同时存在于数据库客户端与服务器端(客户端与服务端不在同一台主机中)。如果在客户端连远程的数据库服务器,你就要编辑客户机上的tnsnames.ora。数据库服务端主机上的tnsnames.ora则可以不编辑。如果你在数据库服务端所在机器上登录连接数据库,你就要编辑服务端的tnsnames.ora。客户端的可以不编辑。  

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.102.22)(PORT = 1521))
)
)



ADR_BASE_LISTENER = 
LISTENER :监听名称,可以配置多个监听,多个监听的端口号要区分开来。
GLOBAL_DBNAME :全局数据库名。通过select * from global_name; 查询得出
SID_NAME :服务器端(本机)的SID
ORACLE_HOME :oracle软件的根目录
PROTOCOL:监听协议,一般都使用TCP
HOST:本机IP地址,双机时候使用浮动IP
PORT:监听的端口号,使用netstat –an 检查该端口不被占用。

LISTENER :指出一个监听器定义的起始点。它实际上是正被定义的当前监听器的名称。默认的名称是LISTENER。
DESCRIPTION :描述每个监听位置
ADDRESS_LIST :含有与监听器正在监听的那些位置有关的地址信息
PROTOCOL : 指定用于本监听位置的协议
HOST :保存监听器所驻留在的那台计算机的名称
PORT :含有监听器正在上面监听的地址
SID_LIST_LISTENER :定义配置监听器所针对的ORACLE服务的列表
SID_DESC :描述每个Oracel SID
GLOBAL_DBNAME :标识全局数据库名称。本项应该与当前Oracle服务的init.ora文件中的SERVICE_NAMES项一致
ORACLE_HOME : 给出服务器上Oracle可执行程序的位置

SID_LIST_LISTENER:配置监听器所应对ORACLE服务的列表

SID_DESC:描述每个Oracle SID

ORACLE_HOME:给出服务器上Oracle可执行程序的位置

SID_NAME:含有用于本Oracle实例的Oracle SID的名称

LISTENER:它实际是当前监听器名称(默认名称),监听器定义的起始点。

DESCRIPTION:描述每个监听位置

ADDRESS:含有与监听器正在监听的那些位置有关的地址信息

PROTOCOL:指定用于本监听位置的协议

HOST:监听器所驻留的计算机名称

PORT:监听的端口号

sqlnet.ora的作用
当用户登录到操作系统后,如果进而允许此用户登录数据库系统,则需要在sqlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES= (NTS);
如果设置为SQLNET.AUTHENTICATION_SERVICES= (NONE),则不允许登录到数据库系统中。

(静态注册和动态注册)
注册就是将数据库作为一个服务注册到监听程序,在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务 。

静态注册
在listener.ora中,如果有类似
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Orcl)
(ORACLE_HOME = D:\app\Administrator\product\11.1.0\db_1)
(SID_NAME = ORCL)
)
)
,就是静态注册。

动态注册
在listener.ora中,如果有类似
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = a84p1l1x02meo8p)(PORT = 1521))
)
),就是动态注册。
动态注册的一个特点就是不需要LISTENER.ORA文件。默
认情况PMON 向LSNRCTL 注册TCP/IP协议,PORT 为1521。

使用lsnrctl status查看某个服务是静态注册、还是动态注册;如果是UNKNOWN,表示静态注册;如果是READY,表示动态注册。
READY的服务是由PMON进程动态的注册到监听器,因此PMON进程所在的数据库一定处于打开状态,所以说这些服务名所对应的实例已经准备好(READY)接受用户的连接请求。
UNKNOWN的服务是通过编辑listener.ora而静态注册的服务名,监听器并不知道该服务名对应的实例是否打开了,所以用UNKNOWN表示。

动态注册、静态注册可以根据需要进行转换。

要回复问题请先登录注册