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

相关推荐

  • U盘启动装Linux?详细图文教程

    准备工作(关键步骤)所需工具8GB以上空白U盘(数据会清空)U启动官方工具(最新版):www.uqidong.comLinux系统镜像(推荐Ubuntu/CentOS):Ubuntu官网 | CentOS镜像站备份电脑重要数据(安装过程可能涉及磁盘格式化)镜像选择建议| 用户类型 | 推荐发行版 | 特点……

    2025年7月28日
    2200
  • 键盘失灵?如何查看当前驱动模块

    在Linux系统中,当键盘出现无响应、按键错乱或驱动异常时,重启键盘驱动是常见的解决方法,以下是五种详细操作方案,按风险从低到高排序,请根据实际情况选择:重新加载键盘驱动模块(推荐)适用于大多数情况,通过卸载并重载内核模块实现:# 2. 卸载模块(需root权限)sudo modprobe -r usbhid……

    2025年7月2日
    3500
  • 如何攻克Linux无线网卡驱动开发?

    核心前提条件硬件基础获取无线网卡的芯片型号(如lspci/lsusb)、数据手册(Datasheet)和编程参考(Programming Reference),确认接口类型:PCIe、USB、SDIO 或 SPI,开发环境Linux内核源码(与目标内核版本一致),安装build-essential、libelf……

    2025年7月15日
    3500
  • 如何用systemctl管理systemd服务?

    在Linux系统中,服务(Service)是运行在后台的应用程序,通常用于提供特定功能(如Web服务、数据库等),查询服务状态是系统管理的基础操作,无论是检查服务是否正常运行、排查故障,还是管理启动项,都需要掌握相关命令,以下是多种查询Linux服务的详细方法,适用于主流发行版(如Ubuntu、CentOS、D……

    2025年7月31日
    1800
  • 如何装双系统win10和linux

    准备一个足够容量的U盘,制作Win10和Linux的启动盘,然后按

    2025年8月19日
    1300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信