Ubuntu系统配置Oracle网络的分步指南
Oracle数据库的网络通信依赖系统网络接口的正常工作,需先确保Ubuntu系统能连接外网或目标网络。
ip addr show命令确认网络接口(如eth0、ens33,避免使用已废弃的eth0命名规则)。/etc/netplan/目录下的YAML文件(如01-netcfg.yaml),修改为静态IP配置(若需静态IP):network:
version: 2
renderer: networkd
ethernets:
ens33: # 替换为你的接口名称
dhcp4: no
addresses: ["192.168.1.100/24"] # 静态IP地址及子网掩码
gateway4: "192.168.1.1" # 网关地址
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"] # DNS服务器
若使用动态IP,保持dhcp4: yes即可。sudo netplan apply,使配置生效。ping 8.8.8.8测试外网连接,ping 192.168.1.1测试网关连通性。若需通过命令行工具(如sqlplus)连接Oracle数据库,需安装Instant Client:
basic(基础包)、sqlplus(命令行工具)包(如.tar.gz格式)。tar -xzvf oracle-instantclient-basic-*.tar.gz
sudo mv instantclient_* /opt/oracle/instantclient_XX_X # 替换XX_X为版本号(如19_20)
~/.bashrc文件,添加以下内容:export ORACLE_HOME=/opt/oracle/instantclient_XX_X
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin # TNS配置文件目录
运行source ~/.bashrc使变量生效。监听器负责接收客户端连接请求,配置文件位于$ORACLE_HOME/network/admin/listener.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname_or_ip)(PORT = 1521)) # 监听端口默认1521
(ADDRESS = (PROTOCOL = IPC)(KEY = extproc1521)) # 可选:IPC协议
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = your_sid) # 数据库实例SID(如ORCL)
(ORACLE_HOME = $ORACLE_HOME)
)
)
lsnrctl start启动监听,lsnrctl status查看状态(确保“Status: READY”)。TNSNAMES.ORA文件定义了数据库连接的别名,方便客户端通过别名连接,位于$ORACLE_HOME/network/admin/目录:
your_hostname、your_service_name、your_sid为实际值):ORCL_ALIAS = # 自定义连接别名
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname_or_ip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED) # 连接模式(DEDICATED为专用服务器)
(SERVICE_NAME = your_service_name) # 数据库服务名(如orcl)
# 或使用SID(若数据库配置为SID模式)
# (SID = your_sid)
)
)
tnsping ORCL_ALIAS测试别名解析是否正常(显示“OK”则表示成功)。使用sqlplus工具测试是否能通过别名连接数据库:
sqlplus username/password@ORCL_ALIAS # 替换为实际用户名、密码和别名
若提示“Connected to:”则表示网络配置成功。
listener.ora中的HOST是否为正确的主机名/IP,端口是否被占用(netstat -tulnp | grep 1521)。tnsnames.ora中的HOST、PORT、SERVICE_NAME/SID是否正确,防火墙是否放行1521端口(sudo ufw allow 1521/tcp)。source ~/.bashrc,检查echo $ORACLE_HOME是否输出正确路径。