- 首页 >
- 问答 >
-
云计算 >
- 怎样配置Ubuntu Oracle网络
怎样配置Ubuntu Oracle网络
小樊
41
2025-12-06 21:04:55
Ubuntu 连接 Oracle 的网络配置步骤
一 环境准备与客户端安装
- 安装 Oracle Instant Client(Basic 与 SQL*Plus 等所需包),解压至如 /opt/oracle/instantclient_XX_X。
- 配置环境变量(示例为当前用户生效,生产建议统一到系统级 profile 或 systemd 环境):
- 编辑 ~/.bashrc,加入:
- export ORACLE_HOME=/opt/oracle/instantclient_XX_X
- export LD_LIBRARY_PATH=$ORACLE_HOME
- export TNS_ADMIN=$ORACLE_HOME/network/admin
- export PATH=$ORACLE_HOME:$PATH
- 使配置生效:source ~/.bashrc
- 在 $TNS_ADMIN(即 $ORACLE_HOME/network/admin)下准备 Oracle 网络配置文件(如 tnsnames.ora、listener.ora)。
二 配置 Ubuntu 主机网络
- 查看网卡名称:ip addr show(常见为 eth0、ens33/ens160 等)。
- Ubuntu 18.04 及以上优先使用 Netplan(/etc/netplan/*.yaml)配置静态 IP,例如:
- network:
- version: 2
- renderer: networkd
- ethernets:
- ens160:
- 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:
- 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
- 验证:ping 8.8.8.8 与 ping www.baidu.com,确认路由与 DNS 正常。
三 配置 Oracle 客户端网络文件
- 配置 tnsnames.ora(置于 $TNS_ADMIN),示例:
- ORCL =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = orcl)
- )
- 如本机同时是数据库服务器,配置 listener.ora(置于 $TNS_ADMIN),示例:
- LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
- )
- )
- 说明:HOST 填服务器本机可达地址(对外服务建议 0.0.0.0),PORT 默认 1521。
四 启动监听与测试连接
- 启动/检查监听器(需已安装 Oracle Database 软件,具备 $ORACLE_HOME/bin/lsnrctl):
- 启动:lsnrctl start
- 状态:lsnrctl status
- 热加载:lsnrctl reload
- 连接测试(Instant Client 自带 sqlplus):
- 本地 OS 认证:sqlplus / as sysdba
- 通过 TNS 别名:sqlplus username/password@ORCL
- 直连串:sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
- 若使用 systemd 管理监听器(可选,需 Oracle 用户与权限正确):
- 创建 /etc/systemd/system/oracle-listener.service(ExecStart=$ORACLE_HOME/bin/lsnrctl start 等),然后:
- sudo systemctl daemon-reload
- sudo systemctl start oracle-listener
- sudo systemctl enable oracle-listener。
五 常见问题与排查
- 防火墙放行 1521/TCP(UFW:sudo ufw allow 1521/tcp;firewalld:sudo firewall-cmd --add-port=1521/tcp --permanent && sudo firewall-cmd --reload)。
- 监听端口占用或配置变更未生效:使用 lsnrctl stop/start 或 lsnrctl reload;检查 listener.ora 中端口与 HOST。
- 客户端找不到库:确认 LD_LIBRARY_PATH 指向 Instant Client 目录,且 TNS_ADMIN 指向含 tnsnames.ora 的目录。
- 解析失败:检查 /etc/resolv.conf 或 Netplan 中 nameservers 配置;必要时用 IP 直连验证网络连通性。
- 云服务器安全组/NACL:确保入站放行 1521/TCP,以及数据库所在子网路由与 ACL 正确。