oracle配置listener.ora和tnsnames.ora文件

oracle图形化配置listener.ora文件

概述:

监听的特点:
具有独立性
连接建立流程
默认端口号1521

*服务端需要listener.ora,客户端需要tnsname.ora文件
1.客户端向监听发起请求
监听知道数据库的位置,但是之间没有长连接,

2.监听把用户的请求转给数据库的实例,实例为连接专门启动一个server process,将server process的地址告诉监听,监听把地址告诉客户端

3.客户端通过地址server process建立连接,用户将用户名和密码给server process,SP线程带着信息去数据库验证,验证成功,连接正式建立。

listener的作用:建立连接的时候,负责转发;一旦建立了连接,即使listener关闭,连接也会存在,利用ps -ef | grep oracle,可以看到会话连接
依旧存在

listener.ora的位置:/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

注意:短时间内大量连接上来的时候,listener处理的比较慢,用户感觉连接比较慢。
 


listener.ora文件作用

listener.ora文件中存放了客户机与服务器连接所需要的监听地址,以及服务器启动监听进程时的信息。

手动配置listener.ora文件

listener.ora文件存放位置

直接在这个路径下vi编辑创建listener.ora文件

--vi listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.130)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

图形化配置listener.ora文件

调用图形化界面

[oracle@test ~]$ netca

在文件中可以修改host参数,根据ip或者hostname填写,默认值是localhost,建议使用IP地址

命令:

lsnrctl start

lsnrctl status

lsnrctl stop


tnsnames.ora文件配置

使用netca命令,图形化建立tnsnames.ora文件

tnsnames.ora文件内容,粘贴复制,可手动配置

-- vi tnsnames.ora

#静态注册
SID_LIST_LISTENER_PHALR =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = phalr)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0)
      (SID_NAME = phalr)
    )
  )


#动态注册
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.130)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

[oracle@source admin]$ tnsping ORA_130

TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 11-NOV-2019 17:49:39

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.207.130)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
OK (0 msec)

排错流程

1.
	tnsnames.ora
		ip、端口号:服务器端 netstat -tulnp|grep 1521
		service_names show parameter service
2.
	tnsping
	lsnrctl status

--以上证明我们的客户端配置没有问题

静态文件配置

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521))
    )
      (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC))
      )
  )
)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (PROGRAM = extproc)
     )
   )

--------------------------------------------------------------------

listener.ora

GLOBAL_DBNAME是服务名,SID_NAME是实例名称。GLOBAL_DBNAME可以定义多个,SID_NAME对应一个存在的实例,不能瞎写。

客户端:

客户端连接使用的是注册到listener中的服务名进行比对,根据服务名寻找实例名,建立会话。

访问数据库方式:

-- 用户名/密码@Net_service_name
-- Net_service_name:tnsnames.ora中的
--解析出IP、port,先找到监听,再喝监听里的服务名比对,如果一致,就连接数据库
sqlplus sys/oracle@ORA_130 as sysdba

注:如果本机测试访问,记得关闭防火墙

firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

猜你喜欢

转载自blog.csdn.net/weixin_41086692/article/details/102974034