Oracle数据库卡顿如何优化?

*命令行登录:使用 SQLPlus**

*SQLPlus** 是Oracle官方命令行工具,适合服务器环境或远程连接。

步骤 1:配置环境变量

# 加载Oracle环境变量(根据实际安装路径调整)
source /u01/app/oracle/product/19.0.0/dbhome_1/bin/oracle_env.sh
# 或直接写入 ~/.bash_profile
echo 'export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1' >> ~/.bash_profile
echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile

步骤 2:登录数据库

# 基础登录(需交互输入密码)
sqlplus username/password@hostname:port/service_name
# 推荐方式:隐藏密码(避免泄露)
sqlplus /nolog
SQL> CONNECT username@hostname:port/service_name
Enter password: ********  # 手动输入密码(不显示明文)
# 本地登录(无需网络)
sqlplus / as sysdba        # 以SYSDBA身份登录本地实例(需OS认证)
sqlplus username/password  # 本地非特权用户

常见错误处理

  • ORA-12162: TNS 解析错误
    检查 $ORACLE_HOME/network/admin/tnsnames.ora 配置:

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)  # 或 SID = orcl
        )
      )
  • ORA-01017: 用户名/密码无效
    确认密码大小写(Oracle密码默认区分大小写),或联系DBA重置密码。

图形界面登录:使用 SQL Developer

Oracle SQL Developer 是官方免费图形工具,适合复杂查询和管理。

步骤 1:安装并启动

  • 下载:Oracle SQL Developer 官网
  • 启动(需Java环境):
    unzip sqldeveloper-*.zip
    cd sqldeveloper
    ./sqldeveloper.sh

步骤 2:创建数据库连接

  1. 点击 “新建连接” 图标(绿色加号)。
  2. 填写参数:
    • 连接名:自定义标识(如 Prod_DB
    • 用户名/密码:数据库账号
    • 连接类型Basic(默认)或 TNS(需配置本地Net Service)
    • 主机名:数据库服务器IP或域名
    • 端口1521(默认)
    • 服务名:数据库全局标识(如 orcl
  3. 点击 “测试” 验证连接,成功后点击 “连接”

安全提示

  • 勾选 “保存密码” 时确保本地环境安全(仅限个人设备)。
  • 生产环境建议通过 SSH隧道 连接(在SQL Developer的“SSH”标签页配置)。

安全最佳实践

  1. 最小权限原则
    • 避免使用 SYSDBA 执行常规操作,为每个用户分配合理权限:
      CREATE USER app_user IDENTIFIED BY "StrongP@ss123";
      GRANT CONNECT, RESOURCE TO app_user;
  2. 密码保护
    • 禁止命令行明文密码:改用 CONNECT 交互输入或使用钱包(Oracle Wallet)。
  3. 网络加密
    • 启用 SQLNET.ENCRYPTION(配置 sqlnet.ora)防止流量嗅探。
  4. 审计日志
    • 开启数据库审计(DBA权限):
      AUDIT CREATE SESSION;  -- 记录所有登录尝试

故障排查要点

  • 监听器问题
    检查监听状态:lsnrctl status,确认服务已注册。
  • 防火墙拦截
    确保Linux防火墙放行数据库端口(默认1521):

    sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent
    sudo firewall-cmd --reload
  • 权限不足
    本地登录需OS认证:将用户加入 dba 组(usermod -aG dba oracle_user)。

引用说明

  • Oracle官方文档:SQL*Plus 入门指南
  • Oracle SQL Developer 使用手册:下载与配置
  • 安全规范参考:Oracle Database Security Guide

重要提示:生产环境操作前备份数据,敏感信息(如密码、IP)需脱敏处理,本文步骤基于Oracle 19c及Linux RHEL 8验证,其他版本可能略有差异。

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

(0)
酷番叔酷番叔
上一篇 2025年7月21日 09:39
下一篇 2025年7月21日 10:15

相关推荐

  • 如何在Linux系统中启动SVN服务器?

    在Linux系统中启动SVN服务器通常涉及安装Subversion服务、创建版本控制仓库、配置访问权限以及启动服务进程等步骤,SVN(Subversion)是一款开源的版本控制系统,常用于管理代码、文档等文件的版本历史,通过SVN服务器可以集中存储和管理这些文件,实现多人协作开发,以下是详细的Linux环境下启……

    2025年9月20日
    19900
  • 在Linux系统中,如何正确安全地关闭已开放端口的详细具体步骤有哪些?

    在Linux系统中,端口是网络通信的入口,每个端口对应一个特定的服务或进程,为了系统安全、避免服务冲突或管理网络访问,经常需要关闭不必要的端口,关闭端口的方法主要分为三类:通过防火墙规则拦截、终止占用端口的进程、修改服务配置文件禁用端口绑定,本文将详细介绍这些操作的具体步骤及注意事项,通过防火墙规则关闭端口防火……

    2025年10月7日
    17500
  • 如何彻底删除Linux系统中的gcc?

    在Linux系统中,GCC(GNU Compiler Collection)是编译C、C++、Objective-C等语言的核心工具链,广泛应用于系统开发和软件编译,由于版本冲突、空间清理或重新安装等需求,用户可能需要删除系统中的GCC,删除GCC需谨慎操作,避免因误删导致系统工具或依赖软件无法正常运行,本文将……

    2025年9月17日
    18600
  • 页面卡住时如何发送刷新信号?

    为什么需要刷新DNS?DNS缓存存储了域名与IP的映射关系,加速访问速度,但当网站更换服务器、IP变更或遭遇DNS污染时,缓存可能导致解析错误或无法访问,刷新DNS可强制系统获取最新记录,适用于:网站迁移后无法访问域名解析延迟或失败网络安全策略更新后不同系统环境的刷新方法根据Linux发行版和服务管理工具选择对……

    2025年7月12日
    18800
  • Linux如何编译一个程序?

    在Linux系统中,编译程序是将人类可读的源代码(如C、C++等)转换为计算机可执行的二进制文件的过程,这一过程通常由编译器(如GCC、G++)完成,涉及预处理、编译、汇编和链接等多个阶段,以下是详细的编译流程及注意事项,编译环境准备在编译程序前,需确保系统已安装对应的编译器,以常用的GCC(GNU Compi……

    2025年8月22日
    18400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信