這兩天找了幾個(gè)人作面試,基本都問(wèn)到了兩個(gè)問(wèn)題:
1。 如果用戶告訴你,程序突然慢了,該如何著手……
2。 如果用戶告訴你,程序突然無(wú)法連到database,該如何著手……
大家討論一下?
Q: 如果用戶告訴你,程序突然慢了,該如何著手……
A: 1 > 向問(wèn)題提出者提出以下問(wèn)題:
1 是否經(jīng)做過(guò)數(shù)據(jù)庫(kù)對(duì)象的分析 -->dba_tables(last_analyze)
2 是否經(jīng)歷過(guò)批量dml操作 -->(影響執(zhí)行計(jì)劃)
3 是否經(jīng)歷過(guò)數(shù)據(jù)庫(kù)版本升級(jí) -->(新的bug?)
4 用操作系統(tǒng)命令查看磁盤(pán)I/O是否異常,當(dāng)然還有網(wǎng)絡(luò)是否被其他資源占用 (硬件故障)
5 是不是有新的應(yīng)用上線
6 有沒(méi)有抱錯(cuò)信息 (如果有抱錯(cuò)信息可以縮小故障范圍)
2> 下面開(kāi)始問(wèn)題診斷 診斷的接口就是v$session_wait
第一個(gè)問(wèn)題:
1、查看客戶端進(jìn)程,確認(rèn)是否客戶端本身有病毒或程序有問(wèn)題
2、查看服務(wù)器進(jìn)程/線程運(yùn)行情況
3、如果服務(wù)器不正常,找到相應(yīng)進(jìn)程/線程,kill
Q 2。 如果用戶告訴你,程序突然無(wú)法連到database,該如何著手……
A:
1 有報(bào)錯(cuò)信息 沒(méi)有查看alert_xxx.log 和相關(guān).trc
2 數(shù)據(jù)庫(kù)有關(guān)連接的配置 show parameter process ,show parameter session
操作系統(tǒng)層看看: ps -ef|grep LOCAL |wc -l
ps -ef|grep ora |wc -l
3 v$session_wait
4 開(kāi)始懷疑應(yīng)用中沒(méi)有做conn.close() 可以根據(jù)v$open_cusro(sid)做group by 找到有問(wèn)題的session
5 有可能是應(yīng)用沒(méi)有commit 或者bitmap索引造成enqueue阻塞數(shù)據(jù)庫(kù)對(duì)象訪問(wèn) 又沒(méi)有ora--00060報(bào)錯(cuò)等等
6 是不是app server的Connect pool調(diào)整了min Capability參數(shù) 使得Oracle不支持這么多長(zhǎng)連接
1。 如果用戶告訴你,程序突然慢了,該如何著手……
2。 如果用戶告訴你,程序突然無(wú)法連到database,該如何著手……
大家討論一下?
Q: 如果用戶告訴你,程序突然慢了,該如何著手……
A: 1 > 向問(wèn)題提出者提出以下問(wèn)題:
1 是否經(jīng)做過(guò)數(shù)據(jù)庫(kù)對(duì)象的分析 -->dba_tables(last_analyze)
2 是否經(jīng)歷過(guò)批量dml操作 -->(影響執(zhí)行計(jì)劃)
3 是否經(jīng)歷過(guò)數(shù)據(jù)庫(kù)版本升級(jí) -->(新的bug?)
4 用操作系統(tǒng)命令查看磁盤(pán)I/O是否異常,當(dāng)然還有網(wǎng)絡(luò)是否被其他資源占用 (硬件故障)
5 是不是有新的應(yīng)用上線
6 有沒(méi)有抱錯(cuò)信息 (如果有抱錯(cuò)信息可以縮小故障范圍)
2> 下面開(kāi)始問(wèn)題診斷 診斷的接口就是v$session_wait
第一個(gè)問(wèn)題:
1、查看客戶端進(jìn)程,確認(rèn)是否客戶端本身有病毒或程序有問(wèn)題
2、查看服務(wù)器進(jìn)程/線程運(yùn)行情況
3、如果服務(wù)器不正常,找到相應(yīng)進(jìn)程/線程,kill
Q 2。 如果用戶告訴你,程序突然無(wú)法連到database,該如何著手……
A:
1 有報(bào)錯(cuò)信息 沒(méi)有查看alert_xxx.log 和相關(guān).trc
2 數(shù)據(jù)庫(kù)有關(guān)連接的配置 show parameter process ,show parameter session
操作系統(tǒng)層看看: ps -ef|grep LOCAL |wc -l
ps -ef|grep ora |wc -l
3 v$session_wait
4 開(kāi)始懷疑應(yīng)用中沒(méi)有做conn.close() 可以根據(jù)v$open_cusro(sid)做group by 找到有問(wèn)題的session
5 有可能是應(yīng)用沒(méi)有commit 或者bitmap索引造成enqueue阻塞數(shù)據(jù)庫(kù)對(duì)象訪問(wèn) 又沒(méi)有ora--00060報(bào)錯(cuò)等等
6 是不是app server的Connect pool調(diào)整了min Capability參數(shù) 使得Oracle不支持這么多長(zhǎng)連接