在开始配置前,需完成以下基础检查:
root或sudo权限(修改网络配置、Oracle监听器需管理员权限)。ping命令访问外网(如ping www.baidu.com),避免因网络中断导致配置失败。OPEN状态(可通过sqlplus / as sysdba登录验证)。Oracle数据库需要稳定的网络环境,建议为服务器配置静态IP地址。Ubuntu 18.04及以上版本推荐使用netplan工具管理网络配置(传统版本可使用/etc/network/interfaces)。
运行以下命令获取网络接口标识(通常为eth0、ens33等):
ip addr show
输出示例:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
valid_lft 1234sec preferred_lft 1234sec
此处接口名称为ens33。
Netplan配置文件通常位于/etc/netplan/目录下(如50-cloud-init.yaml),使用nano或vim编辑:
sudo nano /etc/netplan/50-cloud-init.yaml
修改为以下静态IP配置(根据实际网络环境调整addresses、gateway4、nameservers):
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no # 关闭DHCP
addresses: [192.168.1.100/24] # 静态IP地址及子网掩码
gateway4: 192.168.1.1 # 网关地址
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
保存文件后,运行以下命令激活配置:
sudo netplan apply
验证IP是否生效:
ip addr show ens33
应显示配置的静态IP地址(如192.168.1.100)。
监听器负责接收客户端连接请求,其配置文件位于$ORACLE_HOME/network/admin目录(如/u01/app/oracle/product/19c/dbhome_1/network/admin)。
使用sudo权限编辑文件(需Oracle用户权限):
sudo nano $ORACLE_HOME/network/admin/listener.ora
添加或修改以下内容(替换your_hostname为服务器主机名或IP地址,ORCL为数据库SID):
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) # 监听TCP端口1521
#(ADDRESS = (PROTOCOL = IPC)(KEY = extproc1521)) # 可选:IPC协议(用于本地连接)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL) # 数据库SID(需与数据库实例SID一致)
(ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1) # Oracle安装目录
)
)
运行以下命令重启监听器:
lsnrctl stop # 停止监听器
lsnrctl start # 启动监听器
验证监听器状态:
lsnrctl status
应显示监听器正在运行,且包含配置的HOST、PORT及SID信息。
tnsnames.ora文件用于定义数据库连接的别名(如ORCL),方便客户端通过别名连接数据库。该文件同样位于$ORACLE_HOME/network/admin目录。
使用sudo权限编辑文件:
sudo nano $ORACLE_HOME/network/admin/tnsnames.ora
添加以下内容(替换your_hostname为服务器主机名或IP地址,ORCL为数据库服务名/SID):
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) # 监听器地址
(CONNECT_DATA =
(SERVER = DEDICATED) # 连接模式(专用服务器)
(SERVICE_NAME = ORCL) # 数据库服务名(需与数据库注册的服务名一致)
)
)
使用tnsping命令验证连接配置是否正确:
tnsping ORCL
若输出OK(如OK (10 msec)),则表示配置成功。
Ubuntu默认启用ufw防火墙,需开放1521端口(Oracle默认监听端口)以允许客户端连接。
运行以下命令:
sudo ufw allow 1521/tcp
检查1521端口是否已开放:
sudo ufw status
应显示1521/tcp为ALLOW状态。
listener.ora文件语法(如括号匹配、参数格式),确保HOST地址正确(可使用IP地址替代主机名避免DNS解析问题)。tnsnames.ora中的HOST、PORT、SERVICE_NAME与监听器配置一致;检查防火墙是否阻止1521端口。TNS_ADMIN环境变量指向正确的tnsnames.ora目录(如export TNS_ADMIN=/opt/oracle/instantclient_19_14/network/admin)。通过以上步骤,可完成Ubuntu环境下Oracle数据库的网络配置,实现客户端与数据库的正常通信。配置过程中需注意参数的一致性(如HOST、PORT、SERVICE_NAME),并根据实际网络环境调整IP地址、DNS等设置。