其中一個mview失敗,一個命令來剔除失敗mview的所需的log
原創
場景:
1. 分散式資料庫透過mview同步, 一個主表被多個mview來刷取資料。
2. 當其中一個含 mview的資料庫失敗,其上的那個mview停止重新整理。
2. 壞了一個 mview , 主表的mlog$xxxx表的資料因為有一個沒刷, 而不刪除,主表的mlog$xxxx表不斷變大。
3. mlog$xxxx 不斷變大 , 影響其它正常的mview的重新整理非常速度, 且iowait嚴重。
解決:
1. 在建主表庫上使用DBMS_MVIEW.PURGE_LOG() 可以 刪除mlog$中log (最近最少重新整理的mview所需log), 那個失敗的mview一般情況下就是
最近最少重新整理(least recently refreshed) 的(根據實際情況定) 。
2. DBMS_MVIEW.PURGE_LOG() 後, mlog$xxxx表 的 仍熱很大, 因為HWM(高水位線) 過高, 可用alter table xxxx move來降低。
回顧: mview 重新整理的原理: 不再陳述。
使用方法如下:
=====================================PURGE_LOG Procedure=================================
This procedure purges rows from the materialized view log.
Syntax
DBMS_MVIEW.PURGE_LOG (
master IN VARCHAR2,
num IN BINARY_INTEGER := 1,
flag IN VARCHAR2 := 'NOP');
Parameters
Table 54-8 PURGE_LOG Procedure Parameters
Parameter Description
master
Name of the master table or master materialized view.
num
Number of least recently refreshed materialized views whose rows you want to remove from materialized view log. For
example, the following statement deletes rows needed to refresh the two least recently refreshed materialized views:
DBMS_MVIEW.PURGE_LOG('master_table', 2);
To delete all rows in the materialized view log, indicate a high number of materialized views to disregard, as in this
example:
DBMS_MVIEW.PURGE_LOG('master_table',9999);
This statement completely purges the materialized view log that corresponds to master_table if fewer than 9999 materialized
views are based on master_table. A simple materialized view whose rows have been purged from the materialized view log must
be completely refreshed the next time it is refreshed.
flag
Specify delete to guarantee that rows are deleted from the materialized view log for at least one materialized view. This
parameter can override the setting for the parameter num. For example, the following statement deletes rows from the
materialized view log that has dependency rows in the least recently refreshed materialized view:
DBMS_MVIEW.PURGE_LOG('master_table',1,'delete');
原創
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8494287/viewspace-885822/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一個SaaS專案失敗的原因 從個人角度覆盤專案失敗的5個重要原因
- Java的快速失敗和安全失敗Java
- 記一次GI安裝失敗(root.sh在第一個node上失敗)的除錯經歷除錯
- Win7 Nginx啟動失敗 cmd命令失敗Win7Nginx
- 一個0day的開端-失敗的man與nday
- 一場“失敗”的突破:淺談《最後的生還者2》“失敗”的根源
- Splendy Games:一個獨立工作室的失敗警示故事GAM
- Tomcat伺服器啟動失敗其中原因之一Tomcat伺服器
- 2019 年的 19 個高效日:失敗了
- 記一次失敗的StackOverflow回答
- Mysql備份失敗案例(一)MySql
- Sublime 開啟命令框失敗
- win10 dx安裝失敗不能信任一個安裝所需的壓縮檔案怎麼辦Win10
- 使用微服務失敗的11個原因 - Shekhar Gulati微服務
- 以失敗為機制:奇異人生中的真實失敗與虛構性失敗
- 一次失敗的App安全測試APP
- 一次失敗的創業經歷創業
- Code Review 從失敗中總結出來的幾個經驗View
- 快速失敗機制&失敗安全機制
- git push程式碼失敗,鑑權失敗Git
- 使用Spring Boot重試失敗編寫一個反向代理 - AshrithSpring Boot
- Composer 失敗
- 問題一:Kibaba 啟動失敗
- 避免專案失敗的六個基本關注點
- 面試失敗貼之《如何動手建立一個簡單的MVVM框架》面試MVVM框架
- 聊幾個失敗的企業數字化轉型建設案例(一)
- 當「轉型人工智慧」成為一個好公司走向失敗的原因……人工智慧
- 記一次失敗的RecycleView滑動定位View
- 建站失敗的原因分析
- npm install失敗的可能NPM
- 清理重建失敗的索引索引
- 記錄一個 SpringSecurity 和 x-auth-token 一直登入失敗的排查過程SpringGse
- 單個應用失敗程式碼存檔
- 我用 PixiJS 中的 Sprite3d 做了一個失敗的 3D 卡片JS3D
- 快速失敗是讓失敗立即快速發生! - pathelland
- 第一個想取代程式設計師的AI程式設計師,失敗了?程式設計師AI
- 記一次Docker構建失敗Docker
- 讀《原則》(一):“正確地失敗”
- 盤點敏捷專案失敗的6個主要原因敏捷