OGG的抽取程式合併
1 尋找一個時間點,四個OGG抽取程式讀取的日誌相差特別小,使用強制命令停止OGG程式
首先根據歸檔日誌切換,找到每日資料庫壓力最小的時間點,認為7-9點和17點-21點為業務資料量比較清閒是時間段。在此時間段內尋找合併的抽取程式差異最小的時間點,資料量相差在10M內。
使用 info ET_* 檢視合併的OGG抽取程式讀取的歸檔日誌,找到合併的程式差異最小時間點,並強行停止OGG抽取程式。
如果MGR程式配置OGG程式自動重啟,則需要將此引數禁用,並重啟MGR程式。
SEND EXTRACT ET_CJ, FORCESTOP
SEND EXTRACT ET_JA, FORCESTOP
SEND EXTRACT ET_TB, FORCESTOP
SEND EXTRACT ET_YD, FORCESTOP
停止後的狀態如下
EXTRACT ABENDED ET_CJ 00:00:01 00:01:19
EXTRACT ABENDED ET_JA 00:00:01 00:01:16
EXTRACT STOPPED ET_TB 00:00:00 00:01:13
EXTRACT STOPPED ET_YD 00:00:01 00:01:13
檢視每個抽取程式程式讀取的RBA號的位置,並以最小的時間為準。
GGSCI (XXDB3) 24> info ET_*
EXTRACT ET_CJ Last Started 2021-11-19 08:49 Status ABENDED
Checkpoint Lag 00:00:01 (updated 00:00:13 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:38 Thread 1, Seqno 923151, RBA 226304
SCN 3689.4151044528 (15848285399472)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:40 Thread 2, Seqno 513373, RBA 580112
SCN 3689.4151046683 (15848285401627)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:41 Thread 3, Seqno 700612, RBA 759541456
SCN 3689.4150310212 (15848284665156)
EXTRACT ET_JA Last Started 2021-11-19 08:49 Status ABENDED
Checkpoint Lag 00:00:01 (updated 00:00:10 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:42 Thread 1, Seqno 923151, RBA 243200
SCN 3689.4151048854 (15848285403798)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:43 Thread 2, Seqno 513373, RBA 599568
SCN 3689.4151049970 (15848285404914)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:40 Thread 3, Seqno 700612, RBA 750326584
SCN 3689.4150309682 (15848284664626)
EXTRACT ET_TB Last Started 2021-11-19 08:49 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:45 Thread 1, Seqno 923151, RBA 261120
SCN 3689.4151052791 (15848285407735)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:47 Thread 2, Seqno 513373, RBA 616292
SCN 3689.4151054181 (15848285409125)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:50 Thread 3, Seqno 700612, RBA 1104938896
SCN 3689.4150328763 (15848284683707)
EXTRACT ET_YD Last Started 2021-11-19 08:49 Status STOPPED
Checkpoint Lag 00:00:01 (updated 00:00:07 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:45 Thread 1, Seqno 923151, RBA 259072
SCN 3689.4151052078 (15848285407022)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:46 Thread 2, Seqno 513373, RBA 614928
SCN 3689.4151053645 (15848285408589)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:50 Thread 3, Seqno 700612, RBA 1089680932
SCN 3689.4150328161 (15848284683105)
根據如上資訊,決定使用使用每個執行緒最低的RBA號進行資料抽取,差異在10M內,
有可能會導致目標端的資料有重複資料但不會導致資料丟失,應該是在可以接受的範圍內。
否則,則需要業務系統所有的業務,才能保證幾個抽取程式讀取的位置一致。
例項1 2021-11-19 08:51:38 Thread 1, Seqno 923151, RBA 226304
例項2 2021-11-19 08:51:40 Thread 2, Seqno 513373, RBA 580112
例項3 2021-11-19 08:43:40 Thread 3, Seqno 700612, RBA 750326584
2 停止投遞程式,並將投遞程式中的引數檔案予以修改。即將抽取程式中的表,複製到投遞程式中,
並記錄投遞程式讀取的RBA號,以作回退使用。
GGSCI (XXDB3) 24> stop DP_*
Sending STOP request to EXTRACT DP_CJ ...
Request processed.
Sending STOP request to EXTRACT DP_JA ...
Request processed.
Sending STOP request to EXTRACT DP_TB ...
Request processed.
Sending STOP request to EXTRACT DP_YD ...
Request processed.
GGSCI (XXDB3) 25> info DP_*
EXTRACT DP_CJ Last Started 2021-11-15 23:33 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:08 ago)
Log Read Checkpoint File ./dirdat/cj2/cj041171
2021-11-19 08:49:45.202412 RBA 1384
EXTRACT DP_JA Last Started 2021-11-19 09:42 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Log Read Checkpoint File ./dirdat/ja/jb128023
2021-11-19 08:49:45.275881 RBA 1385
EXTRACT DP_TB Last Started 2021-11-15 23:33 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Log Read Checkpoint File ./dirdat/tb/tb004071
2021-11-19 08:49:45.523086 RBA 1061
EXTRACT DP_YD Last Started 2021-11-15 23:33 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:06 ago)
Log Read Checkpoint File ./dirdat/yd/yd008514
2021-11-19 08:49:45.218477 RBA 1061
3 將 ET_CJ、ET_JA、ET_TB、ET_YD 四個抽取程式中的表進行整理去重,合併到一起,並新增到ET_TB程式中
此步驟相關的表就不列在此處了。
4 調整ET_TB程式的trail檔案大小及讀取的位置,此此調整trail檔案大小,主要是解決11G的OGG的trail
檔案號達到999999時的故障,提前進行處理,避免未來某一天因為此問題導致OGG程式的異常。
修改ET_TB 的抽取trail檔案大小為2G
extract Trail: ./dirdat/tb/tb
extract: ET_TB
Seqno: 4071
RBA: 1061
File Size: 200M --修改前
以下為執行的修改命令
GGSCI (XXDB3) 39> ALTER EXTTRAIL ./dirdat/tb/tb, EXTRACT ET_TB, MEGABYTES 2000
EXTTRAIL altered.
extract Trail: ./dirdat/tb/tb
extract: ET_TB
Seqno: 4071
RBA: 1061
File Size: 2000M --修改後
修改ET_TB 讀取歸檔日誌的位置:
GGSCI (XXDB3) 41> info ET_tb
EXTRACT ET_TB Initialized 2021-11-19 08:49 Status STOPPED
Checkpoint Lag 00:00:00 (updated 01:19:32 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:45 Thread 1, Seqno 923151, RBA 261120
SCN 3689.4151052791 (15848285407735)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:47 Thread 2, Seqno 513373, RBA 616292
SCN 3689.4151054181 (15848285409125)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:50 Thread 3, Seqno 700612, RBA 1104938896
SCN 3689.4150328763 (15848284683707)
GGSCI (XXDB3) 42> ALTER EXTRACT ET_TB, Thread 1, ET_SEQNO 923151, ET_RBA 226304
EXTRACT altered.
GGSCI (XXDB3) 43> ALTER EXTRACT ET_TB, Thread 2, ET_SEQNO 513373, ET_RBA 580112
EXTRACT altered.
GGSCI (XXDB3) 44> ALTER EXTRACT ET_TB, Thread 3, ET_SEQNO 700612, ET_RBA 750326584
EXTRACT altered.
GGSCI (XXDB3) 45> info ET_tb
EXTRACT ET_TB Initialized 2021-11-19 10:12 Status STOPPED
Checkpoint Lag 01:20:20 (updated 00:00:04 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:45 Thread 1, Seqno 923151, RBA 226304
SCN 0.0 (0)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:51:47 Thread 2, Seqno 513373, RBA 580112
SCN 0.0 (0)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:50 Thread 3, Seqno 700612, RBA 750326584
SCN 0.0 (0)
5 啟動OGG抽取程式,發現報錯,對錯誤的處理
2021-11-19 10:13:14 INFO OGG-01516 Positioned to (Thread 2) Sequence 513373, RBA 580112, SCN 0.0, Nov 19, 2021 8:51:47 AM.
2021-11-19 10:13:14 INFO OGG-01513 Positioning to (Thread 3) Sequence 700612, RBA 750326584, SCN 0.0.
2021-11-19 10:13:15 INFO OGG-01516 Positioned to (Thread 3) Sequence 700612, RBA 750326584, SCN 0.0, Nov 19, 2021 8:43:50 AM.
2021-11-19 10:13:15 INFO OGG-01517 Position of first record processed for Thread 1, Sequence 923151, RBA 226320, SCN 3689.4151044612, N
ov 19, 2021 8:51:38 AM.
2021-11-19 10:13:15 INFO OGG-01055 Recovery initialization completed for target file ./dirdat/tb/tb004071, at RBA 1061.
2021-11-19 10:13:15 INFO OGG-01478 Output file ./dirdat/tb/tb is using format RELEASE 11.2.
2021-11-19 10:13:15 INFO OGG-01026 Rolling over remote file ./dirdat/tb/tb004071.
2021-11-19 10:13:15 INFO OGG-01053 Recovery completed for target file ./dirdat/tb/tb004072, at RBA 1061.
2021-11-19 10:13:15 INFO OGG-01057 Recovery completed for all targets.
***********************************************************************
** Run Time Messages **
***********************************************************************
Source ContET_ :
SourceModule : [er.redo.ora.rtc]
SourceID : [/scratch/pradshar/view_storage/pradshar_pse_15852019/oggcore/OpenSys/src/app/er/redo/oracle/rtc.c]
SourceFunction : [RTC_producer]
SourceLine : [2111]
ThreadBacktrace : [6] elements
: [/goldengate/libgglog.so(CMessageContET_::AddThreadContET_()+0x1e) [0x7f46be57771e]]
: [/goldengate/libgglog.so(CMessageFactory::CreateMessage(CSourceContET_*, unsigned int, ...)+0x2cc) [0x7f46be5706
bc]]
: [/goldengate/libgglog.so(_MSG_ERR_ER_GENERIC_FAILURE(CSourceContET_*, char const*, CMessageFactory::MessageDispo
sition)+0x31) [0x7f46be55b859]]
: [/goldengate/ET_ract(RTC_producer+0x4f6) [0x72b826]]
: [/lib64/libpthread.so.0(+0x7dd5) [0x7f46be6f1dd5]]
: [/lib64/libc.so.6(clone+0x6d) [0x7f46ba78fb3d]]
2021-11-19 10:13:15 ERROR OGG-01028 Non-standard redo detected in 10g compatible format.
根據如下文件ET_ract Abends with OGG-01028 Non-Standard Redo Detected in 10g
Compatible Format (Doc ID 1313864.1) 進行調整,抽取程式恢復正常
以下為執行的操作
GGSCI (XXDB3) 53> ALTER EXTRACT ET_TB, Thread 2, BEGIN 2021-11-19 08:51:40
EXTRACT altered.
GGSCI (XXDB3) 54> ALTER EXTRACT ET_TB, Thread 3, BEGIN 2021-11-19 08:43:40
EXTRACT altered.
GGSCI (XXDB3) 59> info ET_tb --OGG抽取程式已經恢復正常
EXTRACT ET_TB Last Started 2021-11-19 10:26 Status RUNNING
Checkpoint Lag 01:26:07 (updated 00:00:00 ago)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:55:00 Thread 1, Seqno 923152, RBA 325136
SCN 3689.4151325171 (15848285680115)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 09:00:39 Thread 2, Seqno 513376, RBA 13507168
SCN 3689.4151908598 (15848286263542)
Log Read Checkpoint Oracle Redo Logs
2021-11-19 08:43:40 Thread 3, Seqno 700612, RBA 748003028
SCN 3689.4150309574 (15848284664518)
檢視生產的trail檔案,為調整其它OGG投遞程式做依據。
[oracle@XXDB3 tb]$ ls -ltr
total 3736044
-rw-rw-rw- 1 oracle oinstall 1061 Nov 19 10:13 tb004071
-rw-rw-rw- 1 oracle oinstall 1061 Nov 19 10:26 tb004072
-rw-rw-rw- 1 oracle oinstall 1999998590 Nov 19 10:31 tb004073
-rw-rw-rw- 1 oracle oinstall 798726201 Nov 19 10:32 tb004074
6 修改DP_tb 投遞程式的大小,並啟動(由於此投遞程式以前就是ET_TB抽取程式對應的投遞程式,故只需要調整大小就行了)
GGSCI (XXDB3) 61> ALTER RMTTRAIL ./dirdat/tb, EXTRACT DP_TB, MEGABYTES 2000
RMTTRAIL altered.
GGSCI (XXDB3) 62> info ET_trail ./dirdat/tb
extract Trail: ./dirdat/tb
ET_ract: DP_TB
Seqno: 4066
RBA: 111462747
File Size: 2000M
GGSCI (XXDB3) 64> start DP_TB
Sending START request to MANAGER ...
EXTRACT DP_TB starting
GGSCI (XXDB3) 74> info DP_tb
EXTRACT DP_TB Last Started 2021-11-19 10:31 Status RUNNING
Checkpoint Lag 01:46:02 (updated 00:00:00 ago)
Log Read Checkpoint File ./dirdat/tb/tb004074
2021-11-19 08:46:29.000000 RBA 1088769399
7 調整DP_CJ投遞程式生成trail檔案的大小,及讀取trail檔案的名稱及位置(由於此投遞程式都去的trail檔名不是ET_TB生成的trail檔名,故需要進行調整)
調整讀取trail檔案的名稱
GGSCI (XXDB3) 80> ALTER EXTRACT DP_CJ, EXTTRAILSOURCE ./dirdat/tb/tb
EXTRACT altered.
調整讀取trail檔案的RBA號
GGSCI (XXDB3) 81> ALTER DP_CJ,extseqno 4073,extrba 0
EXTRACT altered.
GGSCI (XXDB3) 82> info DP_cj
EXTRACT DP_CJ Initialized 2021-11-19 10:39 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:09 ago)
Log Read Checkpoint File ./dirdat/tb/tb004073
First Record RBA 0
調整TRAIL檔案的大小
GGSCI (XXDB3) 83> ALTER RMTTRAIL ./dirdat/yx/yx, EXTRACT DP_CJ, MEGABYTES 2000
RMTTRAIL altered.
ET_ract Trail: ./dirdat/yx/yx
ET_ract: DP_CJ
Seqno: 41162
RBA: 15795712
File Size: 2000M
啟動
GGSCI (XXDB3) 84> start DP_cj
Sending START request to MANAGER ...
EXTRACT DP_CJ starting
GGSCI (XXDB3) 91> !
info DP_cj
EXTRACT DP_CJ Last Started 2021-11-19 10:41 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Log Read Checkpoint File ./dirdat/tb/tb004085
2021-11-19 09:22:27.000000 RBA 1032207204
其它的OGG投遞程式就不一一列舉。
8 檢視目標端OGG程式是否有報錯,經驗證,只要一個複製程式報ORA-00001錯誤,忽略後,問題解決。
9 對比4個OGG抽取程式合併後的效能,初步計算,4個OGG抽取程式合併為一個,每天大概能為磁碟節省12T到24T的IO。
經過幾天的觀察,OGG目前沒有發生延遲,也未發生以前延遲88小時的現象。
9.1 從日誌切換,在19日OGG抽取程式合併後22日有5T的歸檔日誌量,但抽取程式沒有任何延遲
9.2 從OGG抽取程式處理資料的效能來比對,發現峰值,OGG效能提升比以前提升許多倍。
合併前,11月2日,處理資料的速度,根據delta(此值後續的數字為每秒中OGG抽取程式處理資料的數量),每秒大概在幾條資料,11月4日,為230條左右
合併後,根據11月22日的資料,每秒4000條,有時能夠達到5萬條每秒,最高達到11萬每秒
根據delta資訊的比對,可以發現OGG抽取程式效能最少提升20倍以上,最大估計能達到1000倍以上。
通過此事件可以清晰的看出,不合理的架構,會極大的浪費系統的資源。稍微進行調整,效能就會有極大的提升。
如果將另一個節點17個抽取程式合併為一個,估計每天就能為系統節省140T的IO吞吐量,想想都興奮,主機的IO、CPU、記憶體、網路等效能壓力都將進行釋放,這是一個多麼偉大的事件。估計比花100多萬買裝置的效果都好。
IT系統優化兩條路,一為提升硬體的效能,二為優化業務系統。優化業務系統,需要懂資料庫、業務、架構等各方面知識,且有多年經驗的,能靜下心來認值思考問題的可能原因,通過各種技術手段進行驗證,才能找到解決問題的根源,否則一切都是
都是空談。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996316/viewspace-2844017/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OGG抽取程式報錯ORA-06512
- OGG 使用原有抽取程式,新增投遞程式出現的問題
- PHP 圖片的合併,微信小程式碼合併,文字合併PHP微信小程式
- ogg中抽取或複製程式(extract or replicat)中表的的重複配置
- 改變ogg抽取程式檢查點檔案中的檢查點
- OGG-Oracle 整合模式抽取程式,REGISTER DATABASE都做了什麼?Oracle模式Database
- OGG-00446 ,ORA-26947 抽取程式啟動失敗
- ogg 併發複製程式自阻塞
- 最佳化Extract抽取程式效能,解決OGG抽取日誌延遲 2017-11-12 1758
- OGG-00446 goldengate 抽取程式找不到相應的歸檔日誌的解Go
- OGG整合抽取模式丟失歸檔處理模式
- Hbase-原理-region合併和hfile的合併(大合併、小合併)
- [20181217]ogg抽取日誌分析.txt
- 測試,ogg從歸檔日誌中抽取資料
- OGG 抽取程序註冊時報OGG-08221 ORA-00001錯誤總結
- 大事務導致的OGG抽取程式每天7:39定時延時,執行極其緩慢
- ogg的manager程式
- 如何回退已經合併的master程式碼?AST
- ORACLE OGG引數修改引起佇列檔案異常導致抽取程式無法啟動Oracle佇列
- 熟練使用git 程式碼合併Git
- git合併分支,如果選擇性的合併檔案?Git
- 真正的git合併Git
- oracle rac+adg調整redo日誌組導致adg備庫ogg抽取程式abendOracle
- OGG拆分程式
- 影片合併分割軟體如何合併影片
- Unity網格合併_材質合併[轉]Unity
- ETL中雙流合併和多流合併的區別
- 《JAVA併發程式設計實戰》物件的組合Java程式設計物件
- 石子合併
- 合併果子
- Oracle 合併行/多行合併成一行Oracle
- OGG 程式清除、重建
- Goldengate 抽取程式的常用新增方法Go
- td單元格合併程式碼例項
- 優化C++程式碼(3):常量合併優化C++
- 合併具有文字框的Word文件:VBA程式碼批次操作
- OGG-整合模式抽取與資料庫引數streams_pool_size關係模式資料庫
- 合併陣列陣列