数据库常问的两个问题看看专家们怎么答
文章作者 100test 发表时间 2008:01:28 09:27:09
来源 100Test.Com百考试题网
这两天找了几个人作面试,基本都问到了两个问题:
1。 如果用户告诉你,程序突然慢了,该如何着手……
2。 如果用户告诉你,程序突然无法连到database,该如何着手……
大家讨论一下?
Q: 如果用户告诉你,程序突然慢了,该如何着手……
A: 1 > 向问题提出者提出以下问题:
1 是否经做过数据库对象的分析 dba_tables(last_analyze)
2 是否经历过批量dml操作 (影响执行计划)
3 是否经历过数据库版本升级 (新的bug?)
4 用操作系统命令查看磁盘I/O是否异常,当然还有网络是否被其他资源占用 (硬件故障)
5 是不是有新的应用上线
6 有没有抱错信息 (如果有抱错信息可以缩小故障范围)
2> 下面开始问题诊断 诊断的接口就是v$session_wait
第一个问题:
1、查看客户端进程,确认是否客户端本身有病毒或程序有问题
2、查看服务器进程/线程运行情况
3、如果服务器不正常,找到相应进程/线程,kill
Q 2。 如果用户告诉你,程序突然无法连到database,该如何着手……
A:
1 有报错信息最好 没有查看alert_xxx.log 和相关.trc
2 数据库有关连接的配置 show parameter process ,show parameter session
操作系统层看看: ps -ef|grep LOCAL |wc -l
ps -ef|grep ora |wc -l
3 v$session_wait
4 开始怀疑应用中没有做conn.close() 可以根据v$open_cusro(sid)做group by 找到有问题的session
5 有可能是应用没有commit 或者bitmap索引造成enqueue阻塞数据库对象访问 又没有ora--00060报错等等
6 是不是app server的Connect pool调整了min Capability参数 使得Oracle不支持这么多长连接