Linux Oracle网络配置指南
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数据库的网络配置,实现客户端与服务器的安全、稳定连接。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Oracle网络配置指南
本文地址: https://pptw.com/jishu/716276.html