停止OGG e程式時遭遇長事務分析
日常在進行資料庫維護時經常要停止ogg程式,有時會遇到提示當前有一個長時間執行的事務存在的錯誤,OGG提示可使用 SEND EXTRACT EHXZG001, FORCESTOP命令強制停止程式。然後最後重啟該程式需要讀取的是20939和12852兩個redo日誌。
關鍵點分析:
1.當資料庫中一個事務發起時,OGG的e程式將捕捉該事務,進而掃描相關的redo 日誌或archive 日誌。
2.當資料庫中一個事務較長未提交或回滾時,OGG將事務keep在記憶體中,因此同樣保持該事務而不提交或中斷。
3.當需要停止OGG e程式時,便會提示事務正在執行。
措施:
措施1:使用 SEND EXTRACT EHXZG001, FORCESTOP命令強制停止程式,但是,你必須保證重啟時包含該事務的日誌檔案存在並可用,意思就是說ogg程式重啟時會再次恢復捕捉該事務,當此時發現相應的日誌檔案不存在了,於是OGG便會報錯,一般提示找不到歸檔等,其實強制停止個人建議不在萬不得已情況下還是不要做。CSDN上有一篇文章闡述了過程並做了總結:http://blog.csdn.net/xiangsir/article/details/8806027
措施2:不在OGG層面操作,直接從源端資料庫進行回滾或提交,這樣雖然需要等待一定時間但相對比較保險。
OGG事務處理延伸分析:
1.OGG的抽取程式會實時捕捉事務,但投遞到目標端時,如果該事務未做提交,複製程式是不會將其寫入到目標資料庫中的,這樣避免了不一致性。
2.OGG有個Bounded Recovery機制,會每隔一段時間做一個檢查,如果檢測到長事務,OGG會將時間段內這個未提交或回滾的長事務從記憶體中儲存到磁碟上,往後每隔一段時間同樣做一次檢查。以上這個時間段是可以透過引數自定義的 BR BRINTERVAL 2H 。(兩個小時)。
3.Bounded Recovery機制在你強制停止抽取程式後重啟時,可以不必一整個事務都從資料庫的日誌中讀取,而已在檢查點內儲存的事務過程可以透過OGG 自己儲存的BR檔案讀取。
4.一個長事務中未受Bounded Recovery檢測儲存的過程,OGG透過記錄檢查點去歸檔中讀取。
本文乃darren__chan原創文章,請勿轉載。如須轉載請詳細標明轉載出處。
-
GGSCI (gdlt2hxzgdb02) 21> stop *
-
-
Sending STOP request to EXTRACT EHXZG001 ...
-
-
There are open, long-running transactions. Before you stop Extract, make the archives containing data for those transactions available for when Extract restarts. To force Extract to stop, use the SEND EXTRACT EHXZG001, FORCESTOP command.
-
Oldest redo log files necessary to restart Extract are:
-
-
Redo Thread 1, Redo Log Sequence Number 20939, SCN 3340.2050804863 (14347241573503), RBA 47790608
- Redo Thread 2, Redo Log Sequence Number 12852, SCN 3340.2057322291 (14347248090931), RBA 4788752.
1.當資料庫中一個事務發起時,OGG的e程式將捕捉該事務,進而掃描相關的redo 日誌或archive 日誌。
2.當資料庫中一個事務較長未提交或回滾時,OGG將事務keep在記憶體中,因此同樣保持該事務而不提交或中斷。
3.當需要停止OGG e程式時,便會提示事務正在執行。
措施:
措施1:使用 SEND EXTRACT EHXZG001, FORCESTOP命令強制停止程式,但是,你必須保證重啟時包含該事務的日誌檔案存在並可用,意思就是說ogg程式重啟時會再次恢復捕捉該事務,當此時發現相應的日誌檔案不存在了,於是OGG便會報錯,一般提示找不到歸檔等,其實強制停止個人建議不在萬不得已情況下還是不要做。CSDN上有一篇文章闡述了過程並做了總結:http://blog.csdn.net/xiangsir/article/details/8806027
措施2:不在OGG層面操作,直接從源端資料庫進行回滾或提交,這樣雖然需要等待一定時間但相對比較保險。
OGG事務處理延伸分析:
1.OGG的抽取程式會實時捕捉事務,但投遞到目標端時,如果該事務未做提交,複製程式是不會將其寫入到目標資料庫中的,這樣避免了不一致性。
2.OGG有個Bounded Recovery機制,會每隔一段時間做一個檢查,如果檢測到長事務,OGG會將時間段內這個未提交或回滾的長事務從記憶體中儲存到磁碟上,往後每隔一段時間同樣做一次檢查。以上這個時間段是可以透過引數自定義的 BR BRINTERVAL 2H 。(兩個小時)。
3.Bounded Recovery機制在你強制停止抽取程式後重啟時,可以不必一整個事務都從資料庫的日誌中讀取,而已在檢查點內儲存的事務過程可以透過OGG 自己儲存的BR檔案讀取。
4.一個長事務中未受Bounded Recovery檢測儲存的過程,OGG透過記錄檢查點去歸檔中讀取。
本文乃darren__chan原創文章,請勿轉載。如須轉載請詳細標明轉載出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29863023/viewspace-1482680/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ABAP程式碼分析工具 - 事務碼SQF
- SQL Server 查出未提交事務(長事務)SQLSQLServer
- skip a transaction in goldengate(跳過一個事務OGG)Go
- 定時kill長事務指令碼kill_long_session.sh指令碼Session
- MyRocks事務鎖分析
- 全面分析 Spring 的程式設計式事務管理及宣告式事務管理Spring程式設計
- STREAMS筆記(9) 大事務 & 長事務筆記
- spring事務管理原始碼分析(二)事務處理流程分析Spring原始碼
- 當邏輯程式設計遭遇CQRS時程式設計
- Spring事務長了個腿?輕鬆掌握技巧告別長事務煩惱!Spring
- Fragment時長統計那些事Fragment
- InnoDB 事務加鎖分析
- INFORMIX長事務及onstat工具用法ORM
- 【SQL】長事務診斷指令碼SQL指令碼
- 大事務導致的OGG抽取程式每天7:39定時延時,執行極其緩慢
- 分散式事務 TCC-Transaction 原始碼分析 —— 事務恢復分散式原始碼
- PostgreSQL的事務隔離分析SQL
- SharePlex qview工具 vs OGG logdump工具探究兩個複製工具事務開始 or 事務提交複製?View
- 停止MySQL服務hang的問題簡單分析(一)MySql
- 終止oracle日誌分析事務Oracle
- 【轉載】【錯誤解決】本地計算機上的mysql服務啟動停止後,某些服務在未由其他服務或程式使用時將自動停止計算機MySql
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- PostgreSQL DBA(27) - MVCC#7(避免長事務)SQLMVCC#
- goldengate中長事務引起的問題Go
- OGG拆分程式
- ogg停止業務重新初始化目標資料庫流程資料庫
- 【MySQL】資料庫事務深入分析MySql資料庫
- mybaits原始碼分析--事務管理(八)AI原始碼
- React原始碼分析 - 元件更新與事務React原始碼元件
- 定時任務裡面事務不生效問題
- 宣告式事務能否和程式設計式事務巢狀使用?程式設計巢狀
- AKM專案軼事之Flyback遭遇航班取消
- long長事務回滾的模擬與定位
- 啟動和停止任務
- OGG 程式清除、重建
- ogg的manager程式
- Oracle GoldenGate 系列:Extract 程式遇長事務執行 Forcestop 引發的慘案OracleGo
- 混合事務分析處理“HTAP”的技術要點分析