SQLPlus连接Oracle数据库技巧

准备工作

  1. 安装Oracle客户端

    • 官方客户端选择

      • 完整客户端:适用于长期使用(官网下载)
      • Instant Client:轻量级方案(推荐基础包+SQL*Plus)
    • 安装步骤(以Instant Client为例):

      # 解压安装包
      unzip instantclient-basic-linux.x64-19.13.0.0.0dbru.zip -d /opt/oracle/
      unzip instantclient-sqlplus-linux.x64-19.13.0.0.0dbru.zip -d /opt/oracle/
      # 配置环境变量
      echo 'export ORACLE_HOME=/opt/oracle/instantclient_19_13' >> ~/.bashrc
      echo 'export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH' >> ~/.bashrc
      echo 'export PATH=$ORACLE_HOME:$PATH' >> ~/.bashrc
      source ~/.bashrc
  2. 配置网络文件

    • 创建 tnsnames.ora(路径:$ORACLE_HOME/network/admin/):
      ORCL =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_server_ip)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = ORCL)
          )
        )

连接方式详解

*方法1:SQLPlus命令行**

sqlplus username/password@ORCL```
#### **方法2:Python脚本(cx_Oracle)**
1. 安装驱动:
   ```bash
   pip install cx_Oracle
  1. Python连接代码:
    import cx_Oracle
    dsn = cx_Oracle.makedsn("oracle_server_ip", 1521, service_name="ORCL")
    conn = cx_Oracle.connect(user="scott", password="tiger", dsn=dsn)
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM emp")
    print(cursor.fetchall())
    conn.close()

方法3:JDBC连接(Java应用)

  1. 下载JDBC驱动:ojdbc8.jar
  2. Java示例:
    import java.sql.*;
    public class OracleConn {
      public static void main(String[] args) {
        String url = "jdbc:oracle:thin:@//oracle_server_ip:1521/ORCL";
        try (Connection conn = DriverManager.getConnection(url, "scott", "tiger")) {
          System.out.println("Connected to Oracle!");
        } catch (SQLException e) { e.printStackTrace(); }
      }
    }

故障排查与优化

  1. 常见错误解决

    • TNS-12541: No listener
      检查Oracle服务器监听状态:lsnrctl status
    • ORA-12170: TNS Connect timeout
      确认防火墙放行1521端口:sudo ufw allow 1521/tcp
    • 库文件缺失
      安装依赖:sudo apt-get install libaio1(Debian/Ubuntu)
  2. 性能优化建议

    • 启用连接池(如Oracle UCP或第三方工具)
    • 使用tnsping ORCL测试网络延迟
    • 定期清理INACTIVE会话

安全注意事项

  1. 敏感信息保护
    • 避免在脚本中硬编码密码(使用环境变量或密钥管理工具)
    • 配置文件权限:chmod 600 tnsnames.ora
  2. 加密连接
    • 强制使用TCPS协议
    • 配置Oracle Native Network Encryption

通过上述步骤,您可高效安全地在Linux环境中连接Oracle数据库,建议结合具体场景选择连接方式,并定期更新客户端版本以获取安全补丁,对于生产环境,务必遵循最小权限原则和审计要求。

引用说明

  • Oracle Instant Client 官方文档:Oracle Help Center
  • cx_Oracle 使用指南:GitHub – oracle/python-cx_Oracle
  • JDBC 配置参考:Oracle JDBC Developer’s Guide 基于Oracle 19c及Linux主流发行版验证,适用于CentOS 7+/Ubuntu 20.04+环境。*

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7004.html

(0)
酷番叔酷番叔
上一篇 2025年7月12日 01:24
下一篇 2025年7月12日 01:35

相关推荐

  • 如何快速安装AUR助手yay?

    在Arch Linux上安装Adobe Flash Player需要特别注意:Adobe已于2020年12月31日正式终止对Flash Player的支持,不再提供安全更新,继续使用存在严重安全风险,建议优先使用HTML5等现代替代技术,若因特殊需求必须安装,以下是详细方法:安装前重要警告安全风险:Flash……

    2025年7月5日
    1200
  • Linux如何高效调用Python脚本?

    基础调用方法使用Python解释器直接运行在终端执行,适用于所有Python版本:python3 脚本名.py # 显式指定Python3python 脚本名.py # 若系统默认Python为2.x,需避免使用关键参数:-c “代码”:直接执行单行代码(如 python3 -c “print(‘Hello……

    2025年6月21日
    1200
  • 新手如何用图形界面进入终端?

    图形界面终端是操作系统桌面环境自带的命令行工具,可通过开始菜单或快捷键打开,无需输入命令,适合初学者使用。

    2025年7月9日
    800
  • Linux卸载JDK 1.7如何避免误删其他Java环境?

    确认已安装的JDK版本打开终端(Ctrl+Alt+T),运行命令检查当前Java版本:java -version若输出包含 7.0(如 java version “1.7.0_80″),则JDK 1.7已安装,定位JDK安装路径:sudo update-alternatives –config java记录J……

    2025年7月5日
    900
  • SELinux安装启用遇难题?

    检查 SELinux 状态在安装前,确认系统是否已预装 SELinux(多数 Linux 发行版默认集成):sestatus若显示 SELinux status: disabled 或未安装,继续下一步,若已启用,输出会显示当前模式(enforcing 或 permissive),安装 SELinux 组件仅当……

    2025年7月4日
    1200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信