oracle中的listener.ora和tnsnames.ora

一、oracle的客户端与服务器端

   oracle在安装完成后服务器和客户端都需要进行网络配置才能实现网络连接。
   服务器端配置监听器,客户端配置网络服务名
oracle中的listener.ora和tnsnames.ora_第1张图片
服务器端可配置一个或多个监听程序 。

二、oracle至少启动的服务

    如果通过网络访问数据库服务器,至少要启动OracleOraDb11g_home1TNSListener和OracleServiceORCL服务。
如果本地访问数据库服务器,至少要启动OracleServiceORCL服务。
网络访问:例: sqlplus scott/scott@orcl
本地访问:例: sqlplus scott/scott

三、详细介绍

① 服务器端的监听器的配置信息有:监听协议(如:TCP/IP)、地址(端口号)、其他相关信息,并将上述配置信息保存在listener.ora文件中,在安装服务器软件时自动配置了一个监听器。
②客户端的网络服务名的配置信息有:服务器地址、监听端口号、数据库SID,与服务器的监听器建立连接,保存于tnsnames.ora中。

  • oracle中用于配置监听器和服务名的可视化工具为:
         Net Configuration Assistant (NETCA)
         Net Manager

四、监听的启动于暂停

①在windows操作系统中,可以使用服务管理器(services.msc)中手动启动与禁用。
oracle中的listener.ora和tnsnames.ora_第2张图片
oracle中的listener.ora和tnsnames.ora_第3张图片
②在linux操作系统中(或者在dos中)

  • 查看监听当前状态:lsnrctl status
  • 启动监听 :lsnrctl starts
  • 停用监听 : lsnrctl stop

五、三个重要的文件(进行网络配置)

           oracle11g中进行网络配置的主要文件有三个,位于$ORACLE_HOME\NETWORK\ADMIN下的sqlnet.ora、listener.ora、tnsnames.ora文件。(前面已介绍过后两个的作用)

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

六、客户端的两种连接方式

1,简单连接:类似conn scott/scott@计算机名:1521/orcl的连接方式,不需要客户端进行任何配置。
2,本地命名:类似conn scott/scott@orcl的连接方式,需要客户端配置一个本地命名解析文件,为$ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora文件,可以使用netca配置。
在sqlnet.ora文件中进行规定。

七、Oracle11g的服务名的含义

服务名:       服务名就是连接字符串,可以通过它访问远程数据库,可以通过NETCA配置,配置时要指明远程数据库的主机名,网络协议用TCP/IP,配置完成后可以用如 下方式登陆:(以服务名为test) username/password@test , 也就是:是对数据库的一个标识,通过服务名可访问数据库 。

测试服务能否连接上:tnsping <服务名>

八、注册*(静态注册和动态注册)

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

静态注册

在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表示。

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

你可能感兴趣的:(oracle)