温馨提示×

centos sqlplus网络配置指南

小樊
38
2025-12-07 14:52:16
栏目: 云计算

CentOS 上 SQL*Plus 网络配置指南

一 场景与准备

  • 适用对象:在 CentOS 7/8 上使用 SQL*Plus 连接远程 Oracle Database(含 19c/21c 等),或在本机充当 Oracle 服务器供远程连接。
  • 客户端方式:安装 Oracle Instant Client(Basic + SQL*Plus),配置 TNS_ADMINtnsnames.ora 后使用服务名连接;直连语法为:sqlplus user/pass@//host:1521/service。
  • 服务器方式:安装 Oracle 数据库后,使用 netca 配置监听(Listener),并确保监听端口 1521 对外可达。

二 客户端安装与网络配置

  • 安装 Instant Client(示例为 19c;如需 21c,将版本号替换为 21):
    • 下载 RPM(Basic 与 SQLPlus),执行:rpm -ivh oracle-instantclient19.rpm
    • 默认安装路径:/usr/lib/oracle/19.9/client64
  • 配置环境变量(建议写入 /etc/profile.d/oracle.sh 并 source 生效):
    • export ORACLE_HOME=/usr/lib/oracle/19.9/client64
    • export PATH=$ORACLE_HOME/bin:$PATH
    • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    • export TNS_ADMIN=$ORACLE_HOME/network/admin
    • export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  • 配置 TNS 与服务名:
    • 创建目录:mkdir -p $TNS_ADMIN
    • 编辑 $TNS_ADMIN/tnsnames.ora:
      ORCL = 
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.example.com)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = orcl.example.com)
          )
        )
      
  • 连接测试与直连:
    • 命名连接:sqlplus username/password@ORCL
    • 直连:sqlplus user/pass@//dbserver.example.com:1521/orcl.example.com
  • 常见故障快速定位:
    • ORA-12154:检查 TNS_ADMIN 路径、tnsnames.ora 拼写与权限
    • ORA-12541:端口 1521 不通,使用 telnet dbserver 1521 验证
    • ORA-01017:用户名/密码错误,特殊字符用双引号包裹
    • sqlplus 启动报库缺失:确认 LD_LIBRARY_PATH 包含 $ORACLE_HOME/lib

三 服务器端监听与数据库启动

  • 使用 netca(Oracle 用户)创建并配置监听(Listener),完成后启动:
    • lsnrctl start
    • lsnrctl status(确认监听地址为 0.0.0.0:1521 或服务器实际 IP)
  • 登录数据库并启动实例:
    • sqlplus /nolog
    • SQL> connect / as sysdba
    • SQL> startup
  • 端口与连通性验证:
    • 查看监听端口:netstat -nlp | grep 1521
    • 远程测试:在客户端执行 telnet 服务器IP 1521,能连通表示网络与监听正常

四 防火墙与主机解析配置

  • firewalld(CentOS 7/8 常用):
    • 开放 1521/tcp:firewall-cmd --zone=public --add-port=1521/tcp --permanent
    • 重新加载:firewall-cmd --reload
  • 主机名与解析:
    • 设置主机名:hostnamectl set-hostname your_host_name
    • 编辑 /etc/hosts:确保包含 “服务器IP 主机名” 映射,避免监听/客户端解析异常
  • SELinux(如启用并影响连接,可先测试性放宽):
    • 临时:setenforce 0
    • 永久:编辑 /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=permissive 或 disabled,重启生效

五 安全加固与性能优化

  • 传输加密(可选,服务器端 sqlnet.ora):
    • SQLNET.ENCRYPTION_SERVER = required
    • SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)
    • SQLNET.CRYPTO_CHECKSUM_SERVER = required
  • 文件权限最小化:
    • chmod 750 $ORACLE_HOME
    • chmod 600 $TNS_ADMIN/*
  • SQL*Plus 输出与批处理:
    • 全局登录脚本($ORACLE_HOME/sqlplus/admin/glogin.sql):
      • SET PAGESIZE 10000
      • SET LINESIZE 200
      • SET NUMFORMAT 999999999999.99
    • 静默执行脚本:sqlplus -S -L user/pass@ORCL @test.sql
  • 网络层优化(示例):
    • echo “net.core.rmem_max=4194304” >> /etc/sysctl.conf
    • echo “net.core.wmem_max=4194304” >> /etc/sysctl.conf
    • sysctl -p

0