目录
LLL的数据库培训—第二部分—Oracle基础知识培训—第3讲—Oracle_11g (11.2.0.4.0) 数据库监听维护
一、概念
1、监听器(LISTENER)
监听器是 Oracle 基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。
既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
[oracle@ycabora:/home/oracle]$ps -ef|grep lsnr
2、本地服务名(Tnsname)
(1)Oracle 客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
(2)本地服务名是 Oracle 客户端网络配置的一种,另外还有 Oracle 名字服务器(Oracle Nameserver)等。
(3)Oracle 常用的客户端配置就是采用的本地服务名。
3、Oracle Net 连接方式
(1)本地客户端连接的数据库
即客户端与数据库位于同一台服务器。
连接方法: CONNECT username/password
(2)非本地客户端连接到数据库
需要服务器端启用 Listener 进程,客户端通过 TNSNAME 或 Easy connect 或 LDAP 等名称解析方式来解析连接字符串,一旦连接成功,即是 Listener 服务停止,不影响该会话。
连接方法:CONNECT username/password@orclxxxx
Connect system/oracle@172.18.5.143/qasorcl
Connect system/oracle@qasorcl2
Tnsnames.ora
172.18.1.109= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.1.109)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = mesorcl) ) )
4、监听的三个文件
(1)Listener.ora---监听文件,服务端
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = yczbora)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
(2)Tnsnames.ora---连接字符串文件,客户端
QASORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.5.143)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = qasorcl)
)
)
(3)Sqlnet.ora----安全配置,版本配置
- 禁用sqlplus / as sysdba登录功能,
SQLNET.AUTHENTICATION_SERVICES= (NTS)
3、客户端连接版本兼容功能:10g,11g,12c(18c,19c)
问题描述:
服务端是12c,
客户端11g r1,connect system/oracle@qasorcl 12c/19c,
(1)ORA-28040: No matching authentication protocol
原因客户端与服务器段的密码生成版本(dba_users.password_versions)不一致导致SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
(2)会提示密码或用户错误。
Connect system/oracle
解决方案,重置密码:alter user system identified by ‘oracle’;
再登录就可以正常登录。
4、客户端到服务器建立会话的过程及相关术语
(1)执行如下的命令来建立连接
CONNECT username/password@net_service_name
(2)连接字符串(connect string)
username/password@net_service_name
- 包含了用户名、密码、连接标识符
- "/" 用于分割用户与密码
- "@" 指示网络连接所需的用户进程
(3)连接标识符(connect identifier)
- @后面的即为连接标识符,如上例中的 qasorcl。
- 连接标识符的名字是一个映射到连接描述符的简化;
- 连接标识符可以为网络服务名/别名、数据库服务名等(net service name, database service name, or net service alias.)
(4)连接描述符(connect discriptor)
使用一种特殊格式来描述连接的具体信息,信息包含了、数据库所在的位置(IP 地址)、服务名、端口号等。如 tnsnames 中的:
orcltest = --网络服务名,数据库别名,等同于连接标识符(屏蔽客户端如何连接到服务器端的细节)
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.51)(PORT = 1521)) --IP 地址,端口号,协议 ) (CONNECT_DATA = (SERVICE_NAME = qasorcl) --服务名 ) )
5、服务名(service_name)
客户端连接到实例的服务名,可以为该参数指定一个或多个服务名。
SYS@wldb>show parameter service
- 该参数从 9i 引入, service_name 通常可以使用 SID 代替。
- 9i 之后, Oracle 推荐使用 service_name 而不是 SID。
- 可以通过定义多不不同的服务名来区分不同的用户连接,该参数缺省的格式为domain_name。
- 基于相同的数据库可以定义多不不同的服务名来区分不同的使用情况
- 如定义 service_name 为 service_names = sales.itpux.com,hr. itpux.com
- sales 部门通过 sales 服务名来建立连接, hr 部门通过 hr 服务名来建立连接,而无须关心连接的是哪一个数据库。
6、常用的配置文件
- ldqp.ora -->用于配置 LDAP 目录名称解析
- cman.ora -->用于配置 Oracle 连接管理参数
- tnsnames.ora -->用于配置本地客户端或远程客户端的本地名称解析
- listener.ora -->用于配置侦听器的相关注册信息
- sqlnet.ora -->用于配置服务器或客户端所支持的解析方式
7、监听目录:
监听+连接目录:su - oarcle+$ORACLE_HOME/network/admin
跟踪目录:$ORACLE_BASE/diag/tnslsnr/wldb/listener/trace
二、 熟悉监听管理工具
1、监听管理工具
使用 Enterprise Manager 查看监听
- netmgr
- netca
- lsnrctl ,
- lsnrctl start listener1(非默认监听的启动)
2、netmgr:
(1)netmgr(Net Manager)中的3个配置模块
- Profile 分支——对应于ora 文件,可以设置客户端和服务器端
- Sevice Naming 分支——用于配置客户端的名称解析,对应于ora 文件
- Listener 分支——用于配置服务器端的数据库侦听器,对应于ora 文件
(2)General Parameter功能
- profile和listner模块都可以配置参数,General Parameter,可以配置跟踪日志启用
- Listener 模块,还可以在此功能中设置密码
3、netca
- Listener configuration:配置监听,同上述Listener 分支,配置ora
- 在当前listerner存在的情况下,我们可以再建立一个listerner2,监听端口可以是1521,也可以是1522等其他端口
- 进行管理时,我们使用listener status/stop/start listener/listener2进行启停管理。
- Local Net Service Name Configuration:配置客户端,同上述Service Naming,配置ora
4、tnsping工具
tnsping 命令用于测试网络的可连通性。
(1)tnsping wldb3(net service name )
(2)tnsping 172.18.5.135:1521/wldb
[oracle@wldb:/oracle/app/oracle/product/19.3.0/db_1/network/admin]$tnsping wldb3 TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 19-FEB-2021 14:37:25 Copyright (c) 1997, 2019, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.5.135)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = wldb))) OK (10 msec)