物化檢視日誌(materialized view log)引起大量Dfs Lock Handle等待
APPLIES TO:
Oracle Server - Enterprise Edition - Version 10.2.0.3 to 10.2.0.4 [Release 10.2]Information in this document applies to any platform.
SYMPTOMS
After creating materialized view logs on two very active tables, many sessions doing DML on those base tables were showing 'DFS LockHandle' waits.
-
Trace files, generated by a system state dump, show a reference to a sequence.
KGL Sequence Object #535:
-
A query of dba_objects for object_id 535 determined this is object SYS.CDC_RSID_SEQ$, which is the same sequence used to insert data into some of the mview logs tables :
INSERT /*+ IDX(0) */ INTO "SBDBA0"."MLOG$_BASETABLE" (dmltype$$,old_new$$, snaptime$$
,change_vector$$,sequence$$,m_row$$,"COL1","UID","STATUS" ,"ID","PFUID") VALUES
(:d,:o,to_date('4000-01-01:00:00:00','YYYY-MM-DD:HH24:MI:SS'),:c
,sys.cdc_rsid_seq$.nextval,:m,:1,:2,:3,:4,:5)
CAUSE
This behavior matches "DFS LOCK HANDLE WAITS ON SEQ CDC_RSID_SEQ$ THOUGH CT ISN'T USING CDC."
Note: This bug was still open with development at the time this note was published (Oct. 2009).
SOLUTION
Workaround: Recreate all MV logs that do not require sequence to be stored in the log.
-
Use dbms_mview.explain mview and query the mv_capabilities_table to determine which
materialized views do not need a sequence added to the materialzied view logs.
If sequence is needed you will see something similar to this in the output:
SQL> exec dbms_mview.explain_mview('CAL_MONTH_SALES_MV');
PL/SQL procedure successfully completed.
SQL> SELECT capability_name, possible, SUBSTR(related_text,1,8)
2 AS rel_text, SUBSTR(msgtxt,1,60) AS msgtxt
3 FROM MV_CAPABILITIES_TABLE where msgtxt like '%sequ%'
SQL> /
CAPABILITY_NAME P REL_TEXT MSGTXT
----------------------------- - -------- ------------------------------
REFRESH_FAST_AFTER_ANY_DML N SH.SALES mv log does not have sequence #
Note: If the sequence is required and is missing from the log then it's possible Oracle will
report error "ORA-32316 REFRESH FAST of %s . %s unsupported after mixed DML."
2. Once it is detemined that the sequence is not required, drop and recreate the materialized view log(s). A complete refresh will be required the first time any fast-refreshable mview uses the newly created log.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-1184683/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20230225]12c Real-time materialized view 實時物化檢視的應用.txtZedView
- Materialized ViewZedView
- 物化檢視日誌無法正常清除的解決方法
- 用exp、imp遷移包含物化檢視日誌的資料
- Linux系統檢視log日誌命令詳解!Linux
- 物化檢視
- slp_srvr top程式,cluster.log大量日誌VR
- Layui+larave-log-view日誌頁面調整UIView
- 物化檢視(zt)
- Linux 下高階日誌檔案檢視器Log File NavigatorLinux
- alertmanager: 檢視日誌
- Linux 檢視日誌Linux
- Log日誌
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- Logminer如何檢視日誌
- Hyperf日誌檢視元件元件
- Oracle vs PostgreSQL Develop(20) - Materialized ViewOracleSQLdevZedView
- calcite物化檢視詳解
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- log 日誌原理
- Python 日誌(Log)Python
- 檢視系統的日誌
- docker檢視容器日誌命令Docker
- windows_weblogic日誌檢視WindowsWeb
- Oracle普通檢視和物化檢視的區別Oracle
- 資料庫的物化檢視資料庫
- 物化檢視分割槽實驗
- Log 工具列印日誌
- Linux C日誌logLinux
- 自定義 Command 檢視 Laravel 日誌Laravel
- 檢視日誌的幾種形式
- mysql檢視binlog日誌詳解MySql
- Oracle資料庫由dataguard備庫引起的log file sync等待Oracle資料庫
- MySQL View 檢視MySqlView
- eclipse設定檢視GC日誌和如何理解GC日誌EclipseGC
- ClickHouse 物化檢視學習總結
- 物化檢視幾個知識點
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- MySQL重做日誌(redo log)MySql