温馨提示×

Ubuntu如何配置Oracle数据库网络

小樊
49
2025-09-21 09:44:22
栏目: 云计算

Ubuntu配置Oracle数据库网络步骤

1. 配置Ubuntu系统网络

确保Ubuntu系统具备稳定的网络连接,是Oracle数据库网络通信的基础。

  • 查看网络接口:使用ip addr show命令确认网络接口名称(如ens33eth0,通常为ens开头)。
  • 设置静态IP(可选但推荐):若需固定IP,编辑Netplan配置文件(如/etc/netplan/50-cloud-init.yaml),添加以下内容(根据实际网络调整):
    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服务器
    
    保存后应用配置:sudo netplan apply
  • 测试网络连通性:使用ping www.baidu.com验证网络是否正常。

2. 安装Oracle Instant Client

Oracle Instant Client是客户端连接数据库的核心组件,需先下载并配置。

  • 下载软件包:从Oracle官网下载对应版本的Instant Client(选择“Basic Package”和“SQL*Plus Package”,如instantclient-basic-linux.x64-21.1.0.0.0.zipinstantclient-sqlplus-linux.x64-21.1.0.0.0.zip)。
  • 解压与移动:将下载的压缩包上传至Ubuntu服务器,解压后移动至/opt/oracle目录(需管理员权限):
    sudo unzip instantclient-basic-linux.x64-21.1.0.0.0.zip -d /opt/oracle/
    sudo mv /opt/oracle/instantclient_21_1 /opt/oracle/instantclient
    
  • 配置环境变量:编辑~/.bashrc文件,添加以下内容(替换路径为实际路径):
    export ORACLE_HOME=/opt/oracle/instantclient
    export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
    export PATH=$ORACLE_HOME:$PATH
    export TNS_ADMIN=$ORACLE_HOME/network/admin  # TNSNAMES.ORA文件路径
    
    使配置生效:source ~/.bashrc

3. 配置Oracle网络核心文件

Oracle网络通信依赖三个关键文件(均位于$TNS_ADMIN目录,即/opt/oracle/instantclient/network/admin),需逐一配置:

3.1 listener.ora(监听器配置)

监听器负责接收客户端连接请求,若需允许远程连接,需配置此文件。

  • 创建/编辑文件sudo nano /opt/oracle/instantclient/network/admin/listener.ora,添加以下内容(替换HOST为服务器IP或域名):
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))  # 监听端口默认1521
        )
      )
    
    若Oracle Database服务已启动,监听器会自动注册实例信息(动态注册);若未启动,需手动启动监听器:lsnrctl start

3.2 tnsnames.ora(客户端连接配置)

用于定义数据库连接的简化别名,客户端通过别名即可连接数据库。

  • 创建/编辑文件sudo nano /opt/oracle/instantclient/network/admin/tnsnames.ora,添加以下内容(替换HOSTPORTSERVICE_NAME为实际值):
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))  # 数据库服务器地址
        (CONNECT_DATA =
          (SERVER = DEDICATED)  # 连接模式(专用服务器,默认)
          (SERVICE_NAME = orcl)  # 数据库服务名(需与数据库配置一致)
        )
      }
    
    保存后,可通过tnsping ORCL命令测试配置是否正确(显示“OK”则表示成功)。

3.3 sqlnet.ora(安全与解析配置)

用于配置连接的安全策略和名称解析方式。

  • 创建/编辑文件sudo nano /opt/oracle/instantclient/network/admin/sqlnet.ora,添加以下内容(可根据需求调整):
    SQLNET.AUTHENTICATION_SERVICES = (NONE)  # 禁用操作系统认证(增强安全性)
    NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)  # 解析顺序:先查tnsnames.ora,再试Easy Connect
    # 若需限制访问IP,取消以下注释并修改(允许192.168.1.0/24网段访问)
    # TCP.INVITED_NODES = (192.168.1.0/24)
    # TCP.VALIDNODE_CHECKING = YES
    
    此配置确保客户端只能通过tnsnames.oraEZCONNECT(如username/password@host:port/service_name)方式连接。

4. 测试Oracle网络连接

完成上述配置后,使用sqlplus命令测试连接:

sqlplus username/password@ORCL
  • 若提示“Connected to Oracle Database”,则表示网络配置成功。
  • 若出现“ORA-12170: TNS Connect timeout”错误,需检查防火墙是否放行1521端口(sudo ufw allow 1521)或网络连通性。

注意事项

  • 权限问题:所有配置文件需确保Oracle用户(或当前用户)有读取权限(chmod -R 755 /opt/oracle/instantclient)。
  • 路径一致性ORACLE_HOMETNS_ADMIN等环境变量需与实际路径一致,避免连接失败。
  • 动态注册:若使用动态注册,需确保数据库实例的local_listener参数设置为监听器地址(如ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))';)。

0