
Oracle 19c 监听服务 3 大配置文件实战从 Net Manager 到手动配置 5 个关键步骤在Oracle数据库的日常运维中监听服务的配置是连接数据库的关键环节。本文将深入探讨Oracle 19c环境下监听服务的核心配置文件从图形化工具Net Manager的使用入手逐步拆解listener.ora、tnsnames.ora和sqlnet.ora三个关键文件的配置方法并提供5个关键步骤的实战指南。1. Oracle监听服务基础架构Oracle监听服务是数据库与客户端通信的桥梁它负责接收客户端的连接请求并将其路由到相应的数据库实例。在19c版本中监听服务的核心组件包括监听进程(LSNRCTL)运行在数据库服务器上的后台进程三大配置文件listener.ora服务端监听器配置tnsnames.ora客户端连接描述配置sqlnet.ora网络服务参数配置这些文件通常位于$ORACLE_HOME/network/admin目录下。与早期版本相比19c在安全性和性能方面有显著改进# 典型Oracle 19c网络配置文件位置 /u01/app/oracle/product/19c/dbhome_1/network/admin/2. 使用Net Manager进行初始配置Oracle Net Manager提供了图形化界面来配置监听服务适合初学者快速上手。以下是使用Net Manager的基本流程启动Net Manager# Linux环境下 netmgr # Windows环境下 开始菜单 Oracle Net Manager创建监听器导航至监听程序节点点击按钮添加新监听器输入监听器名称(通常为LISTENER)配置监听地址选择监听位置添加协议(TCP)、主机名(建议使用IP)和端口(默认1521)关联数据库服务选择数据库服务输入全局数据库名、Oracle主目录和SIDNet Manager会自动生成listener.ora文件内容。例如LISTENER (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) ) SID_LIST_LISTENER (SID_LIST (SID_DESC (GLOBAL_DBNAME orcl) (ORACLE_HOME /u01/app/oracle/product/19c/dbhome_1) (SID_NAME orcl) ) )注意在生产环境中建议直接使用IP地址而非主机名以避免DNS解析问题。3. 手动配置三大核心文件3.1 listener.ora深度配置listener.ora是监听服务的核心配置文件19c版本新增了多项安全参数# 多监听器配置示例 LISTENER_ORCL (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) (ADDRESS (PROTOCOL IPC)(KEY EXTPROC1521)) ) ) # 安全增强参数 VALID_NODE_CHECKING_LISTENER_ORCL ON INBOUND_CONNECT_TIMEOUT_LISTENER_ORCL 60 SSL_CLIENT_AUTHENTICATION FALSE # 多实例配置 SID_LIST_LISTENER_ORCL (SID_LIST (SID_DESC (GLOBAL_DBNAME orcl) (ORACLE_HOME /u01/app/oracle/product/19c/dbhome_1) (SID_NAME orcl) ) (SID_DESC (GLOBAL_DBNAME pdborcl) (ORACLE_HOME /u01/app/oracle/product/19c/dbhome_1) (SID_NAME orcl) (ENVS TNS_ADMIN/u01/app/oracle/admin/pdborcl/network) ) )关键参数说明参数说明推荐值VALID_NODE_CHECKING节点验证ONINBOUND_CONNECT_TIMEOUT连接超时(秒)60SSL_CLIENT_AUTHENTICATIONSSL客户端认证FALSESAVE_CONFIG_ON_STOP停止时保存配置TRUE3.2 tnsnames.ora配置详解tnsnames.ora文件定义了客户端如何连接到数据库服务。19c版本支持更灵活的连接描述# 基础连接描述 ORCL (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) ) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME orcl) ) ) # 高可用配置 ORCL_HA (DESCRIPTION (LOAD_BALANCE ON) (FAILOVER ON) (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.101)(PORT 1521)) ) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME orcl) ) ) # 连接池配置 ORCL_POOLED (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) (CONNECT_DATA (SERVER POOLED) (SERVICE_NAME orcl) ) )3.3 sqlnet.ora安全配置sqlnet.ora文件控制Oracle网络服务的整体行为。19c强化了安全相关参数# 名称解析顺序 NAMES.DIRECTORY_PATH (TNSNAMES, EZCONNECT) # 安全参数 SQLNET.ENCRYPTION_SERVER REQUIRED SQLNET.ENCRYPTION_TYPES_SERVER (AES256) SQLNET.CRYPTO_CHECKSUM_SERVER REQUIRED SQLNET.EXPIRE_TIME 10 # 认证参数 SQLNET.AUTHENTICATION_SERVICES (NONE) SQLNET.ALLOWED_LOGON_VERSION_SERVER 12 # 跟踪与诊断 TRACE_LEVEL_SERVER OFF DIAG_ADR_ENABLED ON安全配置建议加密设置使用AES256加密算法设置SQLNET.EXPIRE_TIME防止空闲连接认证控制禁用操作系统认证(NONE)限制登录协议版本网络限制配置VALID_NODE_CHECKING设置连接超时4. 五大关键配置步骤步骤1规划网络架构在开始配置前需要明确以下信息数据库服务器IP地址监听端口(默认1521)服务命名规则安全要求(加密、认证等)建议创建配置清单项目值备注主机IP192.168.1.100主数据库服务器监听端口1521生产环境建议修改服务名orcl全局数据库名加密算法AES256高安全要求步骤2配置listener.ora按照以下顺序配置监听器定义监听地址配置数据库服务关联设置安全参数添加诊断参数(可选)# 完整listener.ora示例 LISTENER (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) (ADDRESS (PROTOCOL IPC)(KEY EXTPROC1521)) ) ) SID_LIST_LISTENER (SID_LIST (SID_DESC (GLOBAL_DBNAME orcl) (ORACLE_HOME /u01/app/oracle/product/19c/dbhome_1) (SID_NAME orcl) ) ) # 安全配置 VALID_NODE_CHECKING_LISTENER ON INBOUND_CONNECT_TIMEOUT_LISTENER 60步骤3配置tnsnames.ora创建客户端连接描述时注意使用IP而非主机名明确服务名而非SID考虑高可用性配置# 生产环境推荐配置 ORCL (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME orcl) ) (RETRY_COUNT 3) (RETRY_DELAY 1) )步骤4配置sqlnet.ora安全配置要点限制名称解析方式启用加密和完整性检查设置连接超时# 安全增强配置 NAMES.DIRECTORY_PATH (TNSNAMES) SQLNET.ENCRYPTION_SERVER REQUIRED SQLNET.ENCRYPTION_TYPES_SERVER (AES256) SQLNET.CRYPTO_CHECKSUM_SERVER REQUIRED SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER (SHA1) SQLNET.EXPIRE_TIME 10步骤5验证与测试完成配置后按顺序执行验证检查监听状态lsnrctl status lsnrctl services测试客户端连接tnsping orcl sqlplus system/passwordorcl验证加密状态SELECT network_service_banner FROM v$session_connect_info WHERE sid SYS_CONTEXT(USERENV,SID);5. 高级配置与排错5.1 多监听器配置大型环境中可能需要配置多个监听器# 业务监听器 LISTENER_BI (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1522)) ) # 管理监听器 LISTENER_MGMT (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1523)) )5.2 常见问题排查连接超时检查监听器是否运行验证防火墙设置检查INBOUND_CONNECT_TIMEOUT参数TNS-12535错误# 检查网络连通性 ping 192.168.1.100 telnet 192.168.1.100 1521监听日志分析# 查看监听日志 cd $ORACLE_HOME/network/log tail -f listener.log5.3 性能调优建议监听队列大小QUEUESIZE_LISTENER 1000连接速率限制RATE_LIMIT_LISTENER YES CONNECTIONS_PER_SECOND_LISTENER 100I/O多路复用USE_SPAWNED_PROCESSES_LISTENER ON通过以上5个关键步骤您应该能够完成Oracle 19c监听服务的全面配置。实际应用中建议根据具体环境调整参数值并在变更前做好备份。