應急處理問題思路

2021-08-02 18:09:18 字數 1502 閱讀 9891

做資料庫時間長了,可能會經常去客戶那裡進行應急處理問題,特別是客戶急急忙忙的給你打**,說資料庫執行很慢,甚至說資料庫無法使用了,讓你到客戶現場去解決問題,這個可能是大家最不想出現的,因為這個很急,到客戶現場需要趕緊解決問題,那麼如果你遇到了這個問題,也不要慌,還是按照自己的思路去解決,只不過要思路敏捷,速度快,不要到客戶那裡磨磨蹭蹭,讓客戶反感。

•檢視系統是否能登陸(root使用者)

如果系統都不能登陸了,那麼就只能重新啟動了,因為系統都掛起了,只有等到重新啟動後,再看看有沒有可用的歷史資訊,比如作業系統錯誤,資料庫錯誤,awr等等。

•檢視oracle使用者是否能登陸

如果root使用者可以登入,但是oracle使用者不能登入,可能是作業系統的使用者最大程序數達到限制,特別在aix上,使用者最大程序預設128,這個必須更改,我在某個銀行就遇到過這個問題。

•檢視系統資源(io,memory,cpu,network)

看看是否系統還有資源,如果檢視cpu使用100%,那麼可以通過各個作業系統的監控命令看看是哪些程序占用,然後查詢到對應的sql。

sql>select sql_text from v$session a,v$process b ,v$sqltext c where a.paddress=b.address and a.sql_address=c.address and b.spid='作業系統程序』

•檢視資料庫sys使用者是否能登陸

如果資料sqlplus不能登入,那麼資料庫已經掛起,檢視alert是否有可用資訊,如果無可用資訊,那麼只能重新啟動資料庫,然後看看資料庫的歷史資訊是否可以查到對應問題。

•檢視本地動態效能檢視是否能查詢

如果sys使用者可以登入,那麼到資料庫裡邊看看資料庫的等待事件,然後通過等待事件,查到對應的sql語句

sql>select event,count(*) from v$session group by event;

裡邊的空閒等待事件是沒有用的,大家要知道大概哪些是空閒的等待事件,我發現很多人根本就不知道哪些等待事件是我們需要的。

sql>select sql_text from v$session a,v$sqltext b where a.sql_address=b.address and a.event=' 等待事件『  order by piece;

•檢視全域性動態效能檢視是否能查詢

主要是看rac之間通訊是否正常,如果rac之間存在問題,那麼資料庫掛起很正常。

•生成awr報告,檢視出問題時間資料庫的運**況

如果資料庫掛起,那麼重新啟動資料庫後,把掛起之前的awr生成,間隔越短越好,最好是每個快照之間生成乙個awr。

•一直監測,找到不經常執行,但是影響系統的sql

當把對資料庫影響大的sql找到,然後去檢視執行計畫,和開發商一起解決問題。當解決完緊急問題後,需要檢視是否還有比較占用資源的sql。有些sql不是經常執行,那麼可能在awr中無法發現,那麼需要我們認為頻繁監測找到對應的sql。

以上是我的乙個簡單思路。

當把對資料庫影響大的sql找到,然後去檢視執行計畫,和開發商一起解決問題

下標處理問題

下標處理問題 主要是針對於插入排序演算法寫的程式,其他情況可以借鑑這些思路。數學上或者通常意義上,下標都是從1開始的,但是在多數程式語言裡面陣列下標都是從0開始的,這就很惱火了,簡單乙個下標處理起來卻異常麻煩!請看 例如 1 典型的陣列下標越界問題 假設有個陣列 a 0 a 1 我們要用插入法排序,...

ORACLE 異常處理問題處理

create or replace procedure pro people as begin select per id into v per id from people where id i id exception when no data found then v per id 1 whe...

請求處理問題 收藏

問題描述 說有一台機器,上面有m個儲存空間。然後有n個請求,第i個請求計算時需要佔r i 個空間,儲存計算結果則需要佔據o i 個空間 其中 o i 題解 假設可以滿足所有請求,並且處理請求的順序是 r1,r2,r n 1 r n 那麼儲存完所有的請求結果後,剩餘的儲存空間為l m o i 如果假設...