温馨提示×

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 addrping 网关IPnslookup 域名
  • 设置主机名与 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-dbPORT=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: 连接超时:网络不通、端口被防火墙拦截或监听未运行;检查pingfirewall-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)修改前先备份。

0