oracle问题排查

本文针对Oracle数据库登录过程中遇到的ORA-01017无效用户名或密码错误及ORA-01034 Oracle不可用等问题提供了详细的解决方案。通过加入dba用户组及启动数据库实例的方法成功解决了登录问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

问题1:ORA-01017: invalid username/password; logon denied

问题2:链接普通用户报错ORA-01034: ORACLE not available



问题1:ORA-01017: invalid username/password; logon denied

问题描述:oracle登陆sysdba用户时,提示报错ORA-01017: invalid username/password; logon denied;导致一直登陆不了sysdba用户

问题解决:oracle没有添加进入dba用户组。如下图:


[root@vmware-vm home]#  usermod -g oinstall -G dba oracle

问题2:链接普通用户报错ORA-01034: ORACLE not available

界面完上面的问题1之后,oracle登陆普通用户还存在第二个问题

问题描述:

[oracle@vmware-vm home]$ sqlplus user1@//127.0.0.1/ORCLCDB

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Nov 21 15:21:57 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Enter password: 
ERROR:
ORA-12541: TNS:no listener


Enter user-name: uer1
Enter password: 
ERROR:
ORA-01005: null password given; logon denied


Enter user-name: user1
Enter password: 
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 4376
Additional information: 1135834575
Process ID: 0
Session ID: 0 Serial number: 0


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@vmware-vm home]$ 

问题解决:是因为实例没有开启。

登陆sysdba用户后,开启实例即可

开启实例的命令:startup

 

<think>嗯,用户让我介绍一下Oracle性能问题排查方法。首先,我需要确定用户的使用场景。可能是一个数据库管理员或者开发人员遇到了性能问题,需要快速定位和解决。他们可能对Oracle有一定的基础,但需要系统化的排查步骤。 接下来,我得考虑用户的真实需求。他们可能想知道从哪些方面入手,比如常见的性能瓶颈在哪里,如何收集数据,分析哪些指标。可能需要一个结构化的指南,逐步排查问题。 用户可能没有明确说出更深层的需求,比如希望有具体的工具使用示例,或者常见问题的解决方案。比如AWR报告的分析,ASH的使用,或者执行计划的解读。这些都是排查性能问题的关键点。 我要确保回答覆盖主要的排查步骤,从确认问题现象开始,到收集性能数据,分析各个组件(CPU、内存、I/O、SQL等),再到具体的工具和优化方法。同时,要强调系统化的思路,避免遗漏可能的因素。 还要注意用中文,避免使用Markdown,结构清晰,分步骤说明。可能需要举一些例子,比如高逻辑读的SQL,锁争用的处理,或者索引缺失的情况。这样用户能更直观地理解如何应用这些方法。 最后,检查是否有遗漏的重要点,比如等待事件的分析,或者系统参数设置的影响。确保提供的方法全面且实用,帮助用户在实际操作中有效排查问题。</think>以下是Oracle性能问题排查的系统化思路及常用工具方法整理: 一、确认问题现象 1. 收集基础信息 - 异常时间段(精确到分钟级) - 受影响业务模块 - 具体症状(响应慢/超时/挂起/报错- 关联变更记录(近期代码/配置/数据变更) 二、收集性能数据 1. 实时监控工具 $top$ 或 $htop$ 查看服务器负载 $vmstat 2 5$ 检查CPU等待队列 $iostat -x 2 5$ 分析磁盘IO $netstat -nat | grep ESTABLISHED | wc -l$ 查看连接数 2. Oracle内置工具 ```sql -- 当前活动会话 SELECT sid, serial#, username, status, program, sql_id FROM v$session WHERE status = 'ACTIVE'; -- 等待事件Top SQL SELECT * FROM ( SELECT sql_id, event, COUNT(*) cnt FROM v$active_session_history GROUP BY sql_id, event ORDER BY cnt DESC ) WHERE ROWNUM <= 10; ``` 三、核心分析维度 1. 资源瓶颈分析 $$ \begin{cases} CPU:us\% + sy\% > 80\% \\ 内存:swap使用率 > 20\% \\ IO:await > 20ms \\ 网络:retrans > 5\% \end{cases} $$ 2. SQL性能分析 - 高逻辑读SQL:`SELECT * FROM v$sqlstats ORDER BY buffer_gets DESC` - 高物理读SQL:`SELECT * FROM v$sqlstats ORDER BY disk_reads DESC` - 长耗时SQL:`SELECT * FROM v$sqlstats ORDER BY elapsed_time DESC` 3. 锁争用分析 ```sql SELECT l.sid, do.object_name, l.type, l.ctime/60 "锁定时长(分钟)", s.sql_text FROM v$lock l JOIN dba_objects do ON l.id1 = do.object_id LEFT JOIN v$sql s ON s.sql_id = ( SELECT sql_id FROM v$session WHERE sid = l.sid ) WHERE l.block > 0; ``` 四、深度诊断工具 1. AWR报告分析 ```sql -- 生成AWR快照 EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); -- 生成报告 @?/rdbms/admin/awrrpt.sql ``` 重点关注: - Load Profile:逻辑读/物理读变化 - Top 5 Timed Events:主要等待事件 - SQL ordered by Elapsed Time:耗时最长SQL 2. ASH报告(实时分析) ```sql @?/rdbms/admin/ashrpt.sql ``` 分析维度: - 采样时段内等待事件分布 - 阻塞链分析(Blocking Session) - 异常SQL执行特征 五、典型问题处理 1. 全表扫描优化 ```sql -- 检查缺失索引 SELECT table_name, column_name FROM dba_tab_columns WHERE (table_name, column_name) IN ( SELECT table_name, column_name FROM dba_ind_columns GROUP BY table_name, column_name HAVING COUNT(*) = 0 ); ``` 2. 绑定变量窥探问题 ```sql -- 查看执行计划不一致SQL SELECT sql_id, plan_hash_value, COUNT(*) FROM v$sql GROUP BY sql_id, plan_hash_value HAVING COUNT(*) > 1; ``` 3. 统计信息异常 ```sql -- 检查统计信息时效 SELECT owner, table_name, last_analyzed FROM dba_tables WHERE last_analyzed < SYSDATE - 7; ``` 六、优化策略 1. 索引优化三原则: $$ \text{选择性} > 10\% \quad \text{AND} \quad \text{使用频率} > 5次/天 \quad \text{AND} \quad \text{字段数} \leq 4 $$ 2. 连接方式选择矩阵: $$ \begin{cases} \text{NESTED LOOP} & \text{小表驱动大表} \\ \text{HASH JOIN} & \text{中大型表等值连接} \\ \text{MERGE JOIN} & \text{排序后的数据集连接} \end{cases} $$ 排查建议: 1. 优先分析AWR报告的"Top 5 Timed Events" 2. 检查执行计划的基数估计与实际行数的偏差率: $$ \text{偏差率} = \frac{|实际行数 - 估计行数|}{\text{实际行数}} \times 100\% $$ 当偏差率 > 30%时需更新统计信息 3. 对于OLTP系统重点关注: - 逻辑读/秒 > 20000 - 硬解析次数/秒 > 100 - 锁等待时间 > 总DB时间的5%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FrankeChen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值