温馨提示×

如何配置centos上的oracle网络参数

小樊
32
2025-12-29 05:21:24
栏目: 云计算

CentOS 上 Oracle 网络参数配置

一 系统网络与主机名准备

  • 配置网卡(以网卡名ens33为例,静态 IP):编辑文件**/etc/sysconfig/network-scripts/ifcfg-ens33**,内容示例:
    • 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
    • NM_CONTROLLED=yes
  • 使网络生效(CentOS 7 可用):sudo systemctl restart network;若使用 NetworkManager:sudo nmcli con down ens33 && sudo nmcli con up ens33
  • 设置主机名与解析:
    • sudo hostnamectl set-hostname **oracle-db**
    • 编辑**/etc/hosts**:192.168.1.100 oracle-db
  • 验证:ip addr show ens33ping **8.8.8.8**nslookup oracle-db

二 防火墙与 SELinux 策略

  • 推荐保留防火墙并放行 Oracle 端口(默认1521):
    • sudo firewall-cmd --permanent --add-port=**1521**/tcp
    • sudo firewall-cmd --reload
  • SELinux 建议保持启用并做最小调整;如为排障临时放宽:sudo setenforce 0;永久调整编辑**/etc/selinux/config**(生产不建议直接禁用)。

三 Oracle 监听与客户端解析配置

  • 确认环境变量:echo $ORACLE_HOMEecho $ORACLE_SID(如未设置,在 Oracle 用户环境配置文件中导出)。
  • 监听器配置(listener.ora):文件路径**$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)
  • 客户端解析(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

四 可选 内核与 Oracle Net 参数优化

  • 内核参数(/etc/sysctl.conf,按内存与业务调整):
    • kernel.shmmax = 2147483648
    • kernel.shmmni = 4096
    • kernel.shmall = 2097152
    • 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
    • 生效:sudo sysctl -p
  • Oracle Net 基础参数(sqlnet.ora,路径**$ORACLE_HOME/network/admin/sqlnet.ora**):
    • NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
    • SQLNET.EXPIRE_TIME = 10(可选,检测死连接)

五 验证与常见错误

  • 常用检查:
    • 监听状态:$ORACLE_HOME/bin/lsnrctl status
    • 数据库实例:systemctl status oracle(或 ps -ef | grep pmon
    • 日志定位:
      • 监听器日志:$ORACLE_HOME/network/log/listener.log
      • 数据库告警日志:$ORACLE_BASE/diag/rdbms/<db_name>/trace/alert_<db_name>.log
  • 常见错误与处理:
    • ORA-12170 TNS 连接超时:检查网络连通性、防火墙/SELinux、监听是否运行
    • ORA-12541 TNS 无监听器:确认监听已启动且 HOST/PORT 正确
    • ORA-12514 监听器不知道请求的服务:核对 tnsnames.ora 中 SERVICE_NAME 与数据库实际服务名一致

0