Linux环境下Oracle数据库网络配置指南
一、前置准备
在开始配置前,需确认以下信息:
- 数据库服务器IP地址(如
192.168.1.100)、监听端口(默认1521)、数据库实例SID(如orcl)或全局数据库名(如orcl.example.com); - Oracle用户对网络配置文件及
$ORACLE_HOME/network/admin目录有读写权限; - 确保Oracle数据库服务已启动(
sqlplus / as sysdba→startup)。
二、配置网络接口(静态IP)
Oracle网络依赖稳定的网络接口配置,需将Linux服务器设置为静态IP(避免DHCP导致IP变动影响连接)。
1. 查看当前网络接口
使用ip addr或ifconfig命令查看可用接口(如eth0、ens33):
ip addr show
2. 编辑网络配置文件
根据Linux发行版选择对应文件:
- CentOS/RHEL 7+:
/etc/sysconfig/network-scripts/ifcfg-eth0(eth0为接口名); - Debian/Ubuntu:
/etc/network/interfaces。
示例(CentOS/RHEL):
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=static # 静态IP
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes # 开机自启
示例(Debian/Ubuntu):
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
3. 重启网络服务
# CentOS/RHEL 7+
sudo systemctl restart network
# Debian/Ubuntu
sudo systemctl restart networking
4. 验证配置
ip addr show eth0 # 确认IP已生效
ping -c 4 192.168.1.100 # 测试自身连通性
三、配置Oracle监听器(Listener)
监听器负责接收客户端连接请求并转发至数据库实例。
1. 进入监听器配置目录
cd $ORACLE_HOME/network/admin
2. 编辑listener.ora文件
使用文本编辑器(如vi)修改或创建listener.ora,添加以下内容:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 监听IP和端口
# 可选:添加IPC协议(用于本地连接)
# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
# 可选:定义监听的数据库实例(SID)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl) # 数据库实例SID
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) # Oracle安装路径
)
)
3. 启动/重启监听器
lsnrctl stop # 停止监听器(若已运行)
lsnrctl start # 启动监听器
4. 验证监听器状态
lsnrctl status
输出应包含:
- 监听器名称(
LISTENER)、状态(RUNNING); - 监听的协议、地址(如
TCP:192.168.1.100:1521); - 注册的数据库服务(如
orcl.example.com)。
四、配置客户端网络服务名(tnsnames.ora)
tnsnames.ora文件用于将客户端易记的服务名映射至服务器的监听地址和数据库服务。
1. 编辑tnsnames.ora文件
路径:$ORACLE_HOME/network/admin/tnsnames.ora。
2. 添加服务名配置
示例(连接至远程数据库):
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) # 监听器地址
(CONNECT_DATA =
(SERVER = DEDICATED) # 连接模式(专用服务器)
(SERVICE_NAME = orcl.example.com) # 数据库全局服务名(需与监听器注册的一致)
)
)
示例(连接至本地数据库,使用SID):
ORCL_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = orcl) # 数据库实例SID
)
)
3. 测试连接
使用sqlplus命令测试:
sqlplus username/password@ORCL # 使用服务名连接
若配置正确,将进入Oracle命令行界面。
五、可选配置:名称解析优化
为简化连接字符串,可通过以下方式优化名称解析:
1. 配置/etc/hosts文件
将服务器IP与主机名绑定(适用于客户端与服务器在同一网络):
sudo vi /etc/hosts
添加:
192.168.1.100 orcl-server orcl.example.com
之后可使用sqlplus username/password@orcl-server连接。
2. 配置sqlnet.ora文件
路径:$ORACLE_HOME/network/admin/sqlnet.ora。
设置名称解析顺序(优先使用TNSNAMES,即本地tnsnames.ora文件):
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
其中EZCONNECT允许使用host:port/service_name格式连接(如sqlplus username/password@192.168.1.100:1521/orcl)。
六、防火墙与SELinux配置
确保防火墙允许Oracle监听端口(默认1521)通过:
1. 使用iptables(旧版Linux)
sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
sudo service iptables save # 保存规则(CentOS 6)
2. 使用firewalld(新版Linux,如CentOS 7+)
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
3. 处理SELinux(若启用)
若SELinux处于Enforcing模式,需允许Oracle网络访问:
sudo setsebool -P oracle_net_tcp_listen=1
七、常见问题排查
- 监听器无法启动:检查
listener.ora文件语法(如括号匹配)、端口是否被占用(netstat -tulnp | grep 1521); - 客户端无法连接:确认
tnsnames.ora中的主机名/IP、端口、服务名与服务器一致;检查防火墙是否放行端口; - 监听器状态显示“无注册服务”:确保数据库实例已启动(
sqlplus / as sysdba→startup),且LOCAL_LISTENER参数设置正确(show parameter local_listener)。
通过以上步骤,可完成Linux环境下Oracle数据库的网络配置,实现客户端与服务器的安全、稳定连接。
以上就是关于“Linux Oracle网络配置指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm