Oracle Database Linux版网络配置指南
网络接口配置是Oracle网络通信的前提,需根据Linux发行版调整配置文件:
ip addr或ifconfig -a命令确认可用接口(如eth0、ens33)。/etc/sysconfig/network-scripts/ifcfg-eth0(接口名以实际为准),添加以下内容:DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=static # 静态IP
IPADDR=192.168.1.100 # 数据库服务器IP
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 网关
DNS1=8.8.8.8 # DNS服务器
ONBOOT=yes # 开机自启
/etc/network/interfaces,添加:auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
sudo systemctl restart networksudo systemctl restart networkingip addr show eth0确认IP已生效。监听器负责接收客户端连接请求,配置文件位于$ORACLE_HOME/network/admin/listener.ora:
your_host_name为实际主机名或IP):LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521)) # 默认端口1521
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl) # 数据库SID(需与实际一致)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) # Oracle安装路径
)
)
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start
lsnrctl status查看监听器是否运行(需显示“RUNNING”状态)。tnsnames.ora文件用于客户端解析数据库服务名,路径为$ORACLE_HOME/network/admin/tnsnames.ora:
your_host_name、your_service_name为实际值):ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED) # 连接模式(专用服务器)
(SERVICE_NAME = orcl) # 数据库服务名(需与实际一致)
)
)
sqlplus工具测试:sqlplus /@ORCL # 使用操作系统认证
或
sqlplus username/password@ORCL # 使用用户名密码认证
确保主机名与IP映射正确,避免连接错误:
sudo hostnamectl set-hostname your_host_name # 设置永久主机名
/etc/hosts,添加以下内容:192.168.1.100 your_host_name
允许Oracle网络流量通过,避免连接被阻断:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
sudo service iptables save
sudo service iptables restart
setenforce 0/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,重启系统生效。调整内核参数以提升Oracle网络性能,编辑/etc/sysctl.conf:
kernel.shmmax = 2147483648 # 共享内存最大值(单位:字节)
kernel.shmmni = 4096 # 共享内存段最大数量
kernel.shmall = 2097152 # 共享内存总页数
net.ipv4.ip_local_port_range = 1024 65000 # 本地端口范围
net.core.rmem_default = 262144 # 接收缓冲区默认大小
net.core.rmem_max = 262144 # 接收缓冲区最大大小
net.core.wmem_default = 262144 # 发送缓冲区默认大小
net.core.wmem_max = 262144 # 发送缓冲区最大大小
使配置生效:sudo sysctl -p
//host:port/service_name),可省略tnsnames.ora配置,但显式配置更可靠。