一、配置CentOS网络接口(基础网络设置) 要确保Oracle数据库能通过网络访问,需先正确配置CentOS系统的网络接口(以静态IP为例,若用DHCP可跳过IPADDR、NETMASK等静态参数设置)。
eth0,路径为/etc/sysconfig/network-scripts/ifcfg-eth0)。DEVICE=eth0(网卡名称,可通过ip addr命令查看)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服务器)DNS2=8.8.4.4(备用DNS服务器)ONBOOT=yes(开机自动启动网络)。sudo systemctl restart network(或service network restart)使配置生效。ip addr show(或ifconfig)查看IP地址是否正确,用ping 8.8.8.8测试网络连通性。二、配置Oracle监听器(接收客户端连接请求)
监听器是Oracle数据库与客户端通信的关键组件,需通过listener.ora文件配置。
oracle),执行su - oracle。vi命令打开$ORACLE_HOME/network/admin/listener.ora($ORACLE_HOME为Oracle安装目录,如/u01/app/oracle/product/19.0.0/dbhome_1)。your_hostname为服务器主机名或IP地址):LISTENER = (
DESCRIPTION_LIST = (
DESCRIPTION = (
ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)
)
)
)
若需支持多个实例,可添加SID_LIST_LISTENER段(指定SID与Oracle Home路径)。lsnrctl stop停止监听器,再用lsnrctl start启动监听器。lsnrctl status,检查输出中是否包含配置的监听端口(如1521)及状态(RUNNING)。三、配置tnsnames.ora文件(定义数据库连接别名)
tnsnames.ora文件用于简化客户端连接数据库的步骤,需在客户端和服务器端均配置(若客户端与服务器在同一台机器,可省略服务器端配置)。
vi命令打开$ORACLE_HOME/network/admin/tnsnames.ora。your_hostname、your_service_name为实际值,ORCL为自定义连接别名):ORCL = (
DESCRIPTION = (
ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)
CONNECT_DATA = (
SERVER = DEDICATED
SERVICE_NAME = your_service_name
)
)
)
其中,SERVICE_NAME需替换为数据库的实际服务名(可通过lsnrctl status查看)。sqlplus username/password@ORCL命令测试连接(username为数据库用户名,password为密码,ORCL为配置的别名)。四、配置防火墙(允许Oracle端口通过)
CentOS默认开启firewalld防火墙,需开放Oracle监听端口(默认1521)以允许外部连接。
firewall-cmd --permanent --zone=public --add-port=1521/tcp(永久添加1521端口规则)。firewall-cmd --reload使规则生效。firewall-cmd --zone=public --query-port=1521/tcp,若返回yes则表示开放成功。五、关闭SELinux(可选,避免权限问题) SELinux可能会阻止Oracle监听器绑定端口或访问网络,建议关闭(生产环境建议配置SELinux策略而非完全关闭)。
setenforce 0(立即生效,重启后恢复)。/etc/selinux/config文件,将SELINUX=enforcing修改为SELINUX=disabled,保存后重启系统。六、验证Oracle网络连通性 完成上述配置后,需通过以下步骤验证网络是否正常:
lsnrctl status,确认监听器正在运行且监听正确端口。sqlplus / as sysdba进入数据库,再执行lsnrctl status确认监听器状态。sqlplus username/password@your_hostname:1521/ORCL命令测试连接(替换为实际值)。