首页主机资讯Linux Oracle网络连接如何配置

Linux Oracle网络连接如何配置

时间2025-10-14 10:01:04发布访客分类主机资讯浏览1017
导读:Linux环境下Oracle网络连接配置指南 一、基础网络环境准备 在配置Oracle网络前,需确保Linux系统的网络接口已正确配置,满足数据库通信需求。 1. 配置静态IP地址 编辑网络接口配置文件(CentOS/RHEL为/etc/s...

Linux环境下Oracle网络连接配置指南

一、基础网络环境准备

在配置Oracle网络前,需确保Linux系统的网络接口已正确配置,满足数据库通信需求。

1. 配置静态IP地址

编辑网络接口配置文件(CentOS/RHEL为/etc/sysconfig/network-scripts/ifcfg-eth0,Debian/Ubuntu为/etc/network/interfaces),设置静态IP、子网掩码、网关和DNS:

# CentOS/RHEL示例(静态IP)
DEVICE=eth0
BOOTPROTO=static
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示例(静态IP)
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

修改后重启网络服务:

# CentOS/RHEL
sudo systemctl restart network
# Debian/Ubuntu
sudo service networking restart

2. 关闭SELinux(可选但推荐)

SELinux可能阻止Oracle网络服务运行,临时关闭:

sudo setenforce 0

永久关闭需修改配置文件:

sudo sed -i 's/selinux=enforcing/selinux=disabled/g' /etc/selinux/config

3. 配置/etc/hosts文件

确保主机名与IP地址映射正确,避免DNS解析问题:

192.168.1.100 your_hostname

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

监听器负责接收客户端连接请求,其配置文件位于$ORACLE_HOME/network/admin/listener.ora$ORACLE_HOME为Oracle安装目录)。

1. 基本配置示例

LISTENER = 
(DESCRIPTION_LIST = 
    (DESCRIPTION = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))  # 监听TCP协议、指定主机和端口
        (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安装路径
        # (PROGRAM = extproc)  # 可选:用于外部过程调用
    )
)

2. 关键参数说明

  • LISTENER:监听器名称(可自定义,如LISTENER_ORCL)。
  • ADDRESS:监听的网络地址,PROTOCOL支持TCP(默认)、IPCSDP等;HOST可为域名或IP地址(如192.168.1.100localhost);PORT默认为1521(可修改,需与客户端一致)。
  • SID_LIST_LISTENER:静态注册的数据库实例列表(Oracle 12c及以上版本可通过动态注册替代,但仍需配置以支持本地连接)。

3. 启动与验证监听器

# 启动监听器
lsnrctl start

# 查看监听器状态(确认监听端口、注册的实例)
lsnrctl status

# 重新加载配置(无需重启即可应用修改)
lsnrctl reload

# 停止监听器
lsnrctl stop

三、数据库服务配置(tnsnames.ora)

tnsnames.ora文件用于定义客户端连接数据库的别名(TNS名称),简化连接字符串,位于$ORACLE_HOME/network/admin/tnsnames.ora

1. 基本配置示例

ORCL = 
(DESCRIPTION = 
    (ADDRESS_LIST = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))  # 监听器地址
    )
    (CONNECT_DATA = 
        (SERVICE_NAME = orcl)  # 数据库服务名(需与数据库实际服务名一致)
        # (SID = orcl)  # 可选:旧版本使用SID(12c及以上推荐用SERVICE_NAME)
    )
)

2. 关键参数说明

  • ORCL:TNS名称(客户端连接时使用的别名,如sqlplus user/password@ORCL)。
  • ADDRESS_LIST:监听器地址列表,支持多个地址(用于负载均衡或故障转移)。
  • CONNECT_DATA:数据库服务标识,SERVICE_NAME为数据库服务名(可通过lsnrctl status查看),SID为实例SID(旧版本使用)。

3. 复杂配置示例(负载均衡/故障转移)

ORCL_LOAD_BALANCE = 
(DESCRIPTION = 
    (ADDRESS_LIST = 
        (LOAD_BALANCE = on)  # 启用客户端负载均衡
        (FAILOVER = off)     # 关闭故障转移
        (ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
    )
    (CONNECT_DATA = 
        (SERVICE_NAME = orcl)
    )
)

ORCL_FAILOVER = 
(DESCRIPTION = 
    (ADDRESS_LIST = 
        (LOAD_BALANCE = off)
        (FAILOVER = on)      # 启用故障转移
        (ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
    )
    (CONNECT_DATA = 
        (SERVICE_NAME = orcl)
    )
)

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

若客户端与数据库在同一台Linux机器上,可直接使用服务器的tnsnames.ora配置;若为客户端机器,需将服务器的tnsnames.ora复制到客户端的$ORACLE_HOME/network/admin/目录下,或通过TNS_ADMIN环境变量指定配置文件路径:

# 设置TNS_ADMIN环境变量(临时)
export TNS_ADMIN=/path/to/tnsnames.ora/directory

# 永久设置(添加到~/.bash_profile或/etc/profile)
echo 'export TNS_ADMIN=/path/to/tnsnames.ora/directory' >
    >
     ~/.bash_profile
source ~/.bash_profile

五、测试网络连接

使用sqlplus工具测试客户端与数据库的连接:

# 使用TNS名称连接
sqlplus username/password@ORCL

# 使用完整连接字符串(无需tnsnames.ora)
sqlplus username/password@//your_hostname:1521/orcl

若连接成功,将显示Oracle数据库命令行界面;若失败,需检查监听器状态、网络连通性(ping your_hostname)、防火墙设置等。

六、常见问题排查

1. 监听器无法启动

  • 检查listener.ora文件语法(如括号匹配、参数正确性)。
  • 确认监听端口(如1521)未被其他进程占用:
    sudo netstat -tulnp | grep 1521
    

2. 客户端无法连接

  • 确认tnsnames.ora中的TNS名称、主机名、端口、服务名与服务器配置一致。
  • 检查防火墙是否允许监听端口通过:
    # CentOS/RHEL(firewalld)
    sudo firewall-cmd --permanent --add-port=1521/tcp
    sudo firewall-cmd --reload
    # Ubuntu(ufw)
    sudo ufw allow 1521/tcp
    

3. 动态注册失败

  • 确认数据库实例的local_listener参数设置正确(默认指向监听器地址):
    SQL>
         SHOW PARAMETER local_listener;
        
    SQL>
         ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=your_hostname)(PORT=1521))';
        
    
  • 确认监听器已启动且处于运行状态(lsnrctl status)。

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


若转载请注明出处: Linux Oracle网络连接如何配置
本文地址: https://pptw.com/jishu/725610.html
Linux Oracle索引使用有哪些原则 Ubuntu系统中Python如何进行日志记录

游客 回复需填写必要信息