如何配置Ubuntu Oracle的网络参数
导读:Ubuntu 上配置 Oracle 网络参数的完整步骤 一 系统网络与防火墙准备 确认网卡与地址:使用命令查看网卡名与 IP,例如 ip addr show;确保数据库监听的 IP/主机名 可被解析与访问。 配置静态 IP(两种常见方式...
Ubuntu 上配置 Oracle 网络参数的完整步骤
一 系统网络与防火墙准备
- 确认网卡与地址:使用命令查看网卡名与 IP,例如 ip addr show;确保数据库监听的 IP/主机名 可被解析与访问。
- 配置静态 IP(两种常见方式,二选一):
- 使用 Netplan(Ubuntu 18.04+ 常见):编辑 /etc/netplan/*.yaml,示例:
eth0: dhcp4: no addresses: [192.168.1.100/24, 192.168.1.20/24] gateway4: 192.168.1.1 nameservers: { addresses: [8.8.8.8, 1.1.1.1] }
应用:sudo netplan apply。 - 使用 ifupdown(旧版或 Server 常见):编辑 /etc/network/interfaces,示例:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
应用:sudo systemctl restart networking。
- 使用 Netplan(Ubuntu 18.04+ 常见):编辑 /etc/netplan/*.yaml,示例:
- 防火墙放行:Oracle 默认监听 TCP 1521,执行 sudo ufw allow 1521/tcp;如使用云服务器,还需在云平台安全组放行 1521。
- 连通性自检:ping 网关与 DNS;必要时检查 /etc/resolv.conf 的 nameserver 是否正确。
二 Oracle 网络配置文件与位置
- 三个核心文件均位于 $ORACLE_HOME/network/admin(客户端可用 TNS_ADMIN 指定该目录):
- listener.ora:服务器端监听配置,定义监听地址与端口(如 0.0.0.0:1521)。
- tnsnames.ora:客户端命名解析,定义服务别名到 “主机/端口/服务名” 的映射。
- sqlnet.ora:名称解析与认证策略,例如 NAMES.DIRECTORY_PATH 决定解析顺序(TNSNAMES、EZCONNECT 等),Linux 下建议不设置或设为 ALL 以兼容 OS 认证。
- 典型要点:
- 监听主机名建议用服务器的 可路由 IP 或 0.0.0.0,避免仅用 localhost 导致外部不可达。
- 客户端可用 EZCONNECT 直连:sqlplus user/pass@host:1521/service_name。
三 服务器端监听与数据库注册
- 编辑监听:在 $ORACLE_HOME/network/admin/listener.ora 配置监听地址,例如:
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) ) ) - 启动与验证监听:
lsnrctl stop
lsnrctl start
lsnrctl status(应看到监听在 0.0.0.0:1521 且服务已注册) - 数据库动态注册:确保数据库参数 service_names 正确,实例启动后会自动向监听注册;如未出现,可手动注册:
alter system register; - 静态注册(可选,适用于特殊场景):在 listener.ora 的 SID_LIST_LISTENER 中显式声明 SID_DESC。
四 客户端连接与命名解析
- 方式 A(tnsnames.ora):在客户端创建或编辑 $ORACLE_HOME/network/admin/tnsnames.ora(或设置 TNS_ADMIN 指向该目录),示例:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
测试:sqlplus system/oracle@ORCL。 - 方式 B(EZCONNECT,免 tnsnames):确保 sqlnet.ora 包含 NAMES.DIRECTORY_PATH (…, EZCONNECT),然后直连:
sqlplus system/oracle@192.168.1.100:1521/orcl。 - Instant Client 客户端要点:解压 Basic/SQL*Plus 包至如 /opt/oracle/instantclient_XX_X,设置环境变量:
export LD_LIBRARY_PATH=/opt/oracle/instantclient_XX_X:$LD_LIBRARY_PATH
export TNS_ADMIN=/opt/oracle/network/admin
export PATH=/opt/oracle/instantclient_XX_X:$PATH
之后可用 sqlplus 通过 EZCONNECT 或 tnsnames 连接。
五 常见问题快速排查
- 监听未启动或仅本地可连:检查 listener.ora 的 HOST=0.0.0.0,执行 lsnrctl start/status;必要时 alter system register。
- 客户端报找不到服务:核对 tnsnames.ora 的 HOST/PORT/SERVICE_NAME;或用 EZCONNECT 直连验证网络与监听。
- 无法 OS 认证(sqlplus / as sysdba):Linux 下 sqlnet.ora 不要设置 SQLNET.AUTHENTICATION_SERVICES=NTS,可设为 ALL 或不设。
- 防火墙/安全组阻断:本地执行 sudo ufw status,云上放行 TCP 1521;从客户端 telnet host 1521 验证连通性。
- 主机名解析失败:在 /etc/hosts 添加 “服务器IP 主机名” 映射,确保客户端能解析服务器名。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Ubuntu Oracle的网络参数
本文地址: https://pptw.com/jishu/788852.html
