CentOS Oracle网络设置步骤
小樊
38
2025-12-27 06:11:31
CentOS Oracle网络设置步骤
一 系统网络与主机名准备
- 配置网卡(以静态IP为例):编辑文件**/etc/sysconfig/network-scripts/ifcfg-<接口名>(如ifcfg-ens33/eth0**),示例:
DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
使配置生效:CentOS 7 执行systemctl restart network;若使用 NetworkManager,执行nmcli con down <连接名> && nmcli con up <连接名>。验证:ip addr、ping 网关IP、nslookup 域名。
- 设置主机名与 hosts:执行hostnamectl set-hostname oracle-db;编辑**/etc/hosts**添加映射:192.168.1.100 oracle-db。
- 安全策略(测试环境可临时放宽,生产请精细化放行):
- firewalld:放行 Oracle 默认端口1521
firewall-cmd --permanent --add-port=1521/tcp && firewall-cmd --reload
- SELinux:临时setenforce 0;永久将**/etc/selinux/config中 SELINUX=enforcing改为permissive/disabled**并重启。生产建议保留 SELinux 并通过策略/布尔值放行,如:
setsebool -P oracle_enable_homedirs on
setsebool -P oracle_home_tdb on
setsebool -P oracle_enable_pam on。
二 Oracle监听与客户端解析配置
- 监听器 Listener(服务端):
- 手动编辑**$ORACLE_HOME/network/admin/listener.ora**(目录不存在则创建),示例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
)
)
- 管理命令:
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/lsnrctl status(确认监听在1521且包含目标 SID/SERVICE)
修改后也可用lsnrctl reload热加载。
- 图形化工具(可选):以 oracle 用户执行netca,按向导完成“监听程序配置”。
- 客户端解析 tnsnames.ora(服务端本机或远程客户端):
- 编辑**$ORACLE_HOME/network/admin/tnsnames.ora**,示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
- 测试连接:sqlplus username/password@ORCL。
- 连接串要点:tnsnames.ora 中的SERVICE_NAME必须与数据库实际服务名一致(可在lsnrctl status输出中查看)。
三 验证与常见错误
- 快速验证:
- 监听状态:lsnrctl status(应看到监听地址HOST=oracle-db、PORT=1521,以及注册的 SID/SERVICE)。
- 连通性:从客户端执行tnsping ORCL;或用sqlplus username/password@ORCL直连。
- 日志定位:
- 监听器日志:$ORACLE_HOME/diag/tnslsnr//listener/alert/log.xml(或 $ORACLE_HOME/network/log/listener.log)
- 数据库告警日志:$ORACLE_BASE/diag/rdbms/<db_name>/trace/alert_<db_name>.log
- 常见错误与处理:
- ORA-12541 TNS: 无监听器:监听未启动或HOST/PORT错误;执行lsnrctl start,核对 listener.ora。
- ORA-12514 TNS: 监听器不知道请求的服务:tnsnames.ora 的SERVICE_NAME与数据库实际不一致;用lsnrctl status确认服务名。
- ORA-12170 TNS: 连接超时:网络不通、端口被防火墙拦截或监听未运行;检查ping、firewall-cmd放行1521、监听状态。
- ORA-12154 TNS: 无法处理服务名:客户端tnsnames.ora中服务名拼写/缩进错误(首行不能有空格)。
四 可选优化与注意事项
- 内核参数(示例,按内存与业务调整):编辑**/etc/sysctl.conf后执行sysctl -p**
kernel.shmmax=2147483648
kernel.shmall=2097152
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
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
- Oracle 环境变量(oracle 用户):编辑**~/.bash_profile**
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
执行source ~/.bash_profile生效。
- 生产建议:
- 不建议直接关闭防火墙/SELinux,改为仅放行1521/tcp与必要端口,并为 oracle 设置最小权限的 SELinux 布尔值。
- 监听与客户端配置中的主机名、端口、服务名务必保持一致;变更后用lsnrctl reload避免中断。
- 重要配置文件(如listener.ora、tnsnames.ora)修改前先备份。