首页主机资讯Linux Oracle网络配置指南

Linux Oracle网络配置指南

时间2025-10-01 21:52:04发布访客分类主机资讯浏览1081
导读:Linux环境下Oracle数据库网络配置指南 一、前置准备 在开始配置前,需确认以下信息: 数据库服务器IP地址(如192.168.1.100)、监听端口(默认1521)、数据库实例SID(如orcl)或全局数据库名(如orcl.exa...

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

一、前置准备

在开始配置前,需确认以下信息:

  • 数据库服务器IP地址(如192.168.1.100)、监听端口(默认1521)、数据库实例SID(如orcl)或全局数据库名(如orcl.example.com);
  • Oracle用户对网络配置文件及$ORACLE_HOME/network/admin目录有读写权限;
  • 确保Oracle数据库服务已启动(sqlplus / as sysdbastartup)。

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

Oracle网络依赖稳定的网络接口配置,需将Linux服务器设置为静态IP(避免DHCP导致IP变动影响连接)。

1. 查看当前网络接口

使用ip addrifconfig命令查看可用接口(如eth0ens33):

ip addr show

2. 编辑网络配置文件

根据Linux发行版选择对应文件:

  • CentOS/RHEL 7+/etc/sysconfig/network-scripts/ifcfg-eth0eth0为接口名);
  • 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 sysdbastartup),且LOCAL_LISTENER参数设置正确(show parameter local_listener)。

通过以上步骤,可完成Linux环境下Oracle数据库的网络配置,实现客户端与服务器的安全、稳定连接。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux Oracle网络配置指南
本文地址: https://pptw.com/jishu/716276.html
Linux Oracle并发控制策略 Ubuntu Python与其他语言怎么交互

游客 回复需填写必要信息