温馨提示×

怎样配置Ubuntu Oracle网络参数

小樊
41
2025-12-28 12:26:04
栏目: 云计算

Ubuntu Oracle网络参数配置步骤

一 系统网络与防火墙

  • 确认网卡名称:执行 ip addr show,常见为 ens33/ens18/eth0
  • 配置静态IP(Ubuntu 18.04+ 使用 Netplan):编辑 /etc/netplan/*.yaml,示例:
    network:
    version: 2
    renderer: networkd
    ethernets:
    ens33:
    dhcp4: no
    addresses: [192.168.1.100/24]
    gateway4: 192.168.1.1
    nameservers: { addresses: [8.8.8.8, 8.8.4.4] }
    应用:sudo netplan apply。
  • 旧版 ifupdown:编辑 /etc/network/interfaces,设置 address、netmask、gateway、dns-nameservers,然后 sudo systemctl restart networking。
  • 防火墙放行监听端口:sudo ufw allow 1521/tcp;如使用云主机,还需在安全组放行 TCP 1521

二 Oracle客户端与环境变量

  • 安装 Oracle Instant Client(Basic 与 SQL*Plus),解压至 /opt/oracle/instantclient_XX_X
  • 配置环境变量(~/.bashrc 或 /etc/profile.d/oracle.sh):
    export ORACLE_HOME=/opt/oracle/instantclient_XX_X
    export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
    export PATH=$ORACLE_HOME:$PATH
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    使生效:source ~/.bashrc。
  • 权限与目录:确保 $ORACLE_HOME/network/admin 存在且可读,权限建议 755

三 Oracle网络核心配置文件

  • 配置文件路径:均位于 $TNS_ADMIN(即 $ORACLE_HOME/network/admin)。listener.ora 位置在 UNIX/Linux 为 $ORACLE_HOME/network/admin/listener.ora
  • listener.ora(监听器):
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    )
    启动/查看:lsnrctl start / lsnrctl status。
  • tnsnames.ora(客户端别名):
    ORCL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )
    测试:tnsping ORCL;连接:sqlplus username/password@ORCL。
  • sqlnet.ora(解析与安全):
    NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)

    可选:仅允许指定网段

    TCP.VALIDNODE_CHECKING = YES

    TCP.INVITED_NODES = (192.168.1.0/24)

  • 动态注册:数据库实例未自动注册时,设置 local_listener(示例):
    ALTER SYSTEM SET local_listener=‘(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))’ SCOPE=BOTH;

四 验证与常见故障排查

  • 基本连通:ping 数据库主机;nc/telnet 测试 1521 端口连通性。
  • 监听状态:lsnrctl status 应看到监听地址 0.0.0.0:1521 或指定 IP,服务/实例已注册。
  • 客户端解析:tnsping ORCL 返回 OK;sqlplus 连接测试。
  • 常见错误与处理:
    • ORA-12170 TNS Connect timeout:检查防火墙/安全组是否放行 1521,以及 HOST 是否可达。
    • ORA-12541 TNS:no listener:lsnrctl start,确认监听在 1521 端口运行。
    • 动态注册失败:核对 local_listener 参数与监听端口一致。

五 性能与安全优化(可选)

  • 传输优化:在私网环境可启用 Jumbo Frames(MTU=9000),并确保交换机与两端网卡一致;测试无误后再持久化。
  • TCP/IP 内核参数(/etc/sysctl.conf):
    net.core.somaxconn = 65536
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_window_scaling = 1
    应用:sudo sysctl -p。
  • 网卡速率/双工:ethtool -s eth0 speed 1000 duplex full
  • 访问控制:优先使用 ufw 或云安全组限制来源网段访问 1521;sqlnet.ora 中可用 TCP.INVITED_NODES 做二层白名单(注意其对 SCAN/负载均衡的影响)。

0