這兩天找了幾個人作面試,基本都問到了兩個問題:
1。 如果用戶告訴你,程序突然慢了,該如何著手……
2。 如果用戶告訴你,程序突然無法連到database,該如何著手……
大家討論一下?
Q: 如果用戶告訴你,程序突然慢了,該如何著手……
A: 1 > 向問題提出者提出以下問題:
1 是否經做過數據庫對象的分析 -->dba_tables(last_analyze)
2 是否經歷過批量dml操作 -->(影響執(zhí)行計劃)
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不支持這么多長連接
1。 如果用戶告訴你,程序突然慢了,該如何著手……
2。 如果用戶告訴你,程序突然無法連到database,該如何著手……
大家討論一下?
Q: 如果用戶告訴你,程序突然慢了,該如何著手……
A: 1 > 向問題提出者提出以下問題:
1 是否經做過數據庫對象的分析 -->dba_tables(last_analyze)
2 是否經歷過批量dml操作 -->(影響執(zhí)行計劃)
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不支持這么多長連接