监听器
Oracle Net Listener(监听器)是一个位于数据库服务器上的进程,它负责监听客户端的连接请求并将这些请求转发给相应的数据库服务。监听器的工作原理主要包括以下几个步骤:
- 监听连接请求:监听器在预定义的网络地址(主机名和端口号)上监听客户端连接请求。
- 处理连接请求:当收到连接请求时,监听器会根据请求中的服务名称将请求转发给相应的数据库实例。
- 管理连接:监听器持续监控这些连接,并在需要时处理断开和重连等操作。
例子:
假设有一个监听器配置如下:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
)
)
当客户端尝试连接到数据库时,例如:
SQL> CONNECT hr/hr@dbserver:1521/orcl
监听器会监听dbserver
主机上的1521
端口,接受这个连接请求,并将其转发给名为orcl
的数据库实例。
配置监听器
在Oracle数据库中,可以配置监听器使用动态或静态服务注册。
动态服务注册:
动态服务注册是由数据库实例自动完成的。当数据库启动时,实例会自动向监听器注册自己提供的服务。这个过程由LREG(注册进程)管理。
例子:
默认情况下,Oracle数据库配置为使用动态服务注册。当数据库实例启动时,LREG进程会将数据库服务信息注册到监听器。
静态服务注册:
静态服务注册是通过手动配置监听器配置文件listener.ora
来完成的。管理员需要在配置文件中明确指定数据库服务的相关信息。
例子:
在listener.ora
文件中添加静态服务注册的配置:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
(SID_NAME = orcl)
)
)
上述配置明确指定了数据库服务orcl
,其主目录位于/u01/app/oracle/product/19.0.0/dbhome_1
。
具体例子详解
监听器配置文件 (listener.ora):
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = finance.us.flowers.com)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
(SID_NAME = FINDB)
)
)
在这个配置文件中,监听器名为LISTENER
,监听dbserver
主机上的1521
端口。SID列表中包含了一个静态注册的服务finance.us.flowers.com
,其实例名为FINDB
。
客户端配置文件 (tnsnames.ora):
finflowers =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = flowers-server)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = finance.us.flowers.com)
)
)
客户端连接使用以下命令:
SQL> CONNECT jsmith/jspass@finflowers
客户端将使用tnsnames.ora
文件中配置的信息连接到flowers-server
主机上的1521
端口,并连接到服务名为finance.us.flowers.com
的数据库实例。
动态服务注册的配置步骤:
- 确保初始化参数正确配置:
INSTANCE_NAME = FINDB
LOCAL_LISTENER = (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1521)))
SERVICE_NAMES = finance.us.flowers.com
- 在服务器端的
tnsnames.ora
文件中配置协议地址:
LISTENER_FINDB =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
- 使用
ALTER SYSTEM REGISTER
命令在监听器启动后立即启动服务注册:
ALTER SYSTEM REGISTER;
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。
全网第一个AI+PPT提效小册希望能对大家有帮助订阅之后有专属学习交流群
以及AI考试资料分享