Linux环境下Oracle网络设置调整指南
在调整Oracle网络前,需确保Linux系统的网络接口已正确配置静态IP(推荐),避免动态IP变动导致连接问题。
/etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-eth0(eth0为网卡名,需替换为实际名称)DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100 # 替换为实际IP
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes # 开机自启
systemctl restart network # CentOS/RHEL
systemctl restart networking # Debian/Ubuntu
ip addr show eth0或ifconfig eth0确认IP已生效。监听器负责接收客户端连接请求,其配置文件位于$ORACLE_HOME/network/admin/listener.ora(如/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora)。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 替换为实际IP和端口
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl) # 替换为实际SID
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) # 替换为实际ORACLE_HOME
)
)
HOST:监听的IP地址(若需远程访问,需改为服务器实际IP或0.0.0.0,但需注意安全);PORT:监听端口(默认1521,可根据需求修改);SID_NAME:数据库实例SID(通过lsnrctl status查看现有实例)。lsnrctl stop
lsnrctl start
lsnrctl status查看监听器是否运行正常,确认监听的地址、端口及服务实例。tnsnames.ora用于客户端解析数据库服务名,文件路径与listener.ora一致。
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 替换为实际IP和端口
(CONNECT_DATA =
(SERVER = DEDICATED) # 连接模式(DEDICATED为专用服务器)
(SERVICE_NAME = orcl) # 替换为实际服务名(通过`lsnrctl status`查看)
)
)
SERVICE_NAME:数据库服务名(Oracle 12c及以上版本推荐使用,替代传统SID);HOST:数据库服务器IP或主机名(需与listener.ora中的HOST一致)。tnsping命令验证配置是否正确:tnsping ORCL # 替换为实际服务名
若返回“OK”,则表示配置生效。防火墙或SELinux可能阻止Oracle网络流量,需调整以允许1521端口(或其他自定义端口)通信。
firewall-cmd --permanent --add-port=1521/tcp # 永久添加端口
firewall-cmd --reload # 重新加载防火墙规则
sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
sudo service iptables save # 保存规则(Ubuntu可能需安装iptables-persistent)
setenforce 0(重启后失效);/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,重启系统生效。$ORACLE_HOME/network/admin/sqlnet.ora,可配置名称解析方式(如优先使用Easy Connect):NAMES.DIRECTORY_PATH= (EZCONNECT, TNSNAMES) # 允许使用host:port/service_name格式连接
SQLNET.AUTHENTICATION_SERVICES= (NONE) # 禁用操作系统认证(增强安全性)
/etc/sysctl.conf,优化网络性能(如增加端口范围、缓冲区大小):net.ipv4.ip_local_port_range = 1024 65000 # 允许客户端使用的本地端口范围
net.core.rmem_max = 262144 # 接收缓冲区最大值
net.core.wmem_max = 262144 # 发送缓冲区最大值
生效配置:sysctl -p。sqlplus username/password@ORCL # 使用tnsnames.ora中的服务名
或使用Easy Connect格式(若sqlnet.ora允许):sqlplus username/password@192.168.1.100:1521/ORCL
lsnrctl status
通过以上步骤,可完成Linux环境下Oracle网络设置的调整,确保数据库能正常通过网络提供服务。操作前建议备份配置文件(如listener.ora、tnsnames.ora),避免误操作导致配置丢失。