温馨提示×

Ubuntu Oracle数据库网络配置

小樊
37
2025-11-11 05:37:25
栏目: 云计算

Ubuntu环境下Oracle数据库网络配置指南

一、前置准备工作

在开始配置前,需完成以下基础检查:

  1. 系统权限:确保当前用户具有rootsudo权限(修改网络配置、Oracle监听器需管理员权限)。
  2. 网络连通性:确认服务器可通过ping命令访问外网(如ping www.baidu.com),避免因网络中断导致配置失败。
  3. Oracle安装状态:确保Oracle Database已正确安装在Ubuntu系统上(如12c、19c版本),且数据库实例处于OPEN状态(可通过sqlplus / as sysdba登录验证)。

二、Ubuntu网络接口配置(静态IP)

Oracle数据库需要稳定的网络环境,建议为服务器配置静态IP地址。Ubuntu 18.04及以上版本推荐使用netplan工具管理网络配置(传统版本可使用/etc/network/interfaces)。

1. 查看网络接口名称

运行以下命令获取网络接口标识(通常为eth0ens33等):

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

2. 编辑Netplan配置文件

Netplan配置文件通常位于/etc/netplan/目录下(如50-cloud-init.yaml),使用nanovim编辑:

sudo nano /etc/netplan/50-cloud-init.yaml

修改为以下静态IP配置(根据实际网络环境调整addressesgateway4nameservers):

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服务器

3. 应用网络配置

保存文件后,运行以下命令激活配置:

sudo netplan apply

验证IP是否生效:

ip addr show ens33

应显示配置的静态IP地址(如192.168.1.100)。

三、Oracle监听器配置(listener.ora)

监听器负责接收客户端连接请求,其配置文件位于$ORACLE_HOME/network/admin目录(如/u01/app/oracle/product/19c/dbhome_1/network/admin)。

1. 编辑listener.ora文件

使用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安装目录
    )
  )

2. 重启监听器使配置生效

运行以下命令重启监听器:

lsnrctl stop  # 停止监听器
lsnrctl start  # 启动监听器

验证监听器状态:

lsnrctl status

应显示监听器正在运行,且包含配置的HOSTPORTSID信息。

四、TNSNames.ora文件配置(客户端连接别名)

tnsnames.ora文件用于定义数据库连接的别名(如ORCL),方便客户端通过别名连接数据库。该文件同样位于$ORACLE_HOME/network/admin目录。

1. 编辑tnsnames.ora文件

使用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)  # 数据库服务名(需与数据库注册的服务名一致)
    )
  )

2. 测试TNS连接

使用tnsping命令验证连接配置是否正确:

tnsping ORCL

若输出OK(如OK (10 msec)),则表示配置成功。

五、防火墙配置(允许1521端口)

Ubuntu默认启用ufw防火墙,需开放1521端口(Oracle默认监听端口)以允许客户端连接。

1. 允许1521端口

运行以下命令:

sudo ufw allow 1521/tcp

2. 验证防火墙状态

检查1521端口是否已开放:

sudo ufw status

应显示1521/tcpALLOW状态。

六、常见问题排查

  1. 监听器无法启动:检查listener.ora文件语法(如括号匹配、参数格式),确保HOST地址正确(可使用IP地址替代主机名避免DNS解析问题)。
  2. tnsping失败:确认tnsnames.ora中的HOSTPORTSERVICE_NAME与监听器配置一致;检查防火墙是否阻止1521端口。
  3. 客户端无法连接:确保客户端TNS_ADMIN环境变量指向正确的tnsnames.ora目录(如export TNS_ADMIN=/opt/oracle/instantclient_19_14/network/admin)。

通过以上步骤,可完成Ubuntu环境下Oracle数据库的网络配置,实现客户端与数据库的正常通信。配置过程中需注意参数的一致性(如HOSTPORTSERVICE_NAME),并根据实际网络环境调整IP地址、DNS等设置。

0