oracle之 redo過高診斷
一、診斷過度redo
要找到生成大量重做的會話,您可以使用以下任何一種方法。這兩種方法都檢查生成的撤銷量。
當一個事務生成撤銷,它將自動生成重做。
當需要檢查生成大量的程式時,使用第一個查詢。當這些程式啟用多個事務時重做。
後者查詢,可以用來發現哪些特定事務正在生成重做。
1)法一 (針對某程式累計redo生成量)
查詢 V$SESS_IO ,此檢視包含指示的列BLOCK_CHANGES。
該會話更改了多少塊。比較高的值表明,會話生成大量重做.
SELECT s.sid, s.serial#, s.username, s.program,
i.block_changes
FROM v$session s, v$sess_io i
WHERE s.sid = i.sid
ORDER BY 5 desc, 1, 2, 3, 4;
SID SERIAL# USERNAME PROGRAM BLOCK_CHANGES
---------- ---------- ------------------------------ ------------------------------------------------ -------------
331 393 SYS sqlplus@orastb.bonc.com.cn (TNS V1-V3) 210481
241 1 oracle@orastb.bonc.com.cn (SMON) 65308
2)法二 (針對正在執行事務redo生成量)
查詢V$TRANSACTION.此檢視包含有關事務資訊的撤銷塊和撤消記錄。(在 USED_UBLK and USED_UREC 中)
SELECT s.sid, s.serial#, s.username, s.program,
t.used_ublk, t.used_urec
FROM v$session s, v$transaction t
WHERE s.taddr = t.addr
ORDER BY 5 desc, 6 desc, 1, 2, 3, 4;
SID SERIAL# USERNAME PROGRAM USED_UBLK USED_UREC
---------- ---------- ------------------------------ --------------------------------------- ----- -----
1 227 ANDY sqlplus@orastb.bonc.com.cn (TNS V1-V3) 37 2044
二、如何診斷過度的重做生成。
高 redo 通常分為兩類:
1。在一天的特定時間內。
2。存檔日誌的突然增加。
在這兩種情況下,首先要檢查的是資料庫級別上的任何修改(修改任何引數、執行的任何維護操作、..)和應用程式級別(部署新應用程式,修改程式碼,增加使用者,..)。
要知道高重做的確切原因,我們需要關於重做活動的資訊和負載的詳細資訊。以下資訊需要收集在高redo做生成期間。
1]要知道日誌切換的趨勢,可以使用以下查詢。
SQL> alter session set NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';
SQL>select trunc(first_time, 'HH') , count(*)
from v$loghist
group by trunc(first_time, 'HH')
order by trunc(first_time, 'HH');
TRUNC(FIRST_TIME,'HH COUNT(*)
-------------------- ----------
29-MAY-2008 13:00:00 126
29-MAY-2008 14:00:00 135 <- Indicate 135 log switches from 2-3 PM.
29-MAY-2008 15:00:00 112
-- 執行以下查詢,瞭解在任何特定時間生成高重做的會話
col program for a10
col username for a10
select to_char(sysdate,'hh24:mi'), username, program , a.sid, a.serial#, b.name, c.value
from v$session a, v$statname b, v$sesstat c
where b.STATISTIC# =c.STATISTIC#
and c.sid=a.sid and b.name like 'redo size%'
order by value;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2151802/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE診斷案例Oracle
- ORACLE 如何診斷高水位爭用(enq: HW – contention)OracleENQ
- Oracle redo解析之-1、oracle redo log結構計算Oracle Redo
- Oracle診斷事件列表(轉)Oracle事件
- 9 Oracle Data Guard 故障診斷Oracle
- Oracle診斷案例-Sql_traceOracleSQL
- [JVM] 應用診斷工具之Fastthread(線上診斷)JVMASTthread
- 公司某資料子系統定期cpu過高的診斷
- Oracle 12.1.0.2 impdp匯入慢診斷Oracle
- 25_解密Oracle redo生成過程解密Oracle Redo
- 【REDO】Oracle redo advice-sqlOracle RedoSQL
- 【REDO】Oracle redo undo 學習Oracle Redo
- oracle RAC 診斷叢集狀態命令Oracle
- 一次ORACLE IO效能診斷案例Oracle
- 一次Oracle診斷案例-Spfile案例Oracle
- Oracle Redo and UndoOracle Redo
- 【REDO】Oracle redo內部結構Oracle Redo
- Oracle EBS基礎學習:Oracle EBS啟用診斷功能Oracle
- Oracle診斷案例-Job任務停止執行Oracle
- 一次Oracle診斷案例-SGA與SwapOracle
- Oracle redo解析之-2、BBED & DUMP工具使用Oracle Redo
- Oracle redo解析之-4、rowid的計算Oracle Redo
- Oracle redo解析之-3、常見change分析Oracle Redo
- 機器學習之模型診斷機器學習模型
- 愛上Java診斷利器之ArthasJava
- AWR 報告深度解讀:Redo Nowait指標的演算法和診斷AI指標演算法
- 9. Oracle常用分析診斷工具——9.3.ADDMOracle
- 9. Oracle常用分析診斷工具——9.2. ASHOracle
- 9. Oracle常用分析診斷工具——9.1. AWROracle
- 一次DG故障診斷過程分析
- oracle 9i臨時表產生過多redoOracle
- oracle的redo和undoOracle
- 另闢蹊徑-診斷工具之 IO waitAI
- UDS診斷之0x11服務
- oracle 12c 新增的診斷事件的初步嘗試Oracle事件
- 【ASK_ORACLE】ORA-04030診斷方法及預防措施Oracle
- oracle 線上調整redoOracle
- Java診斷利器ArthasJava