Parallel Replicat介紹
在OGG 12.3.0.1中新增的一項特性parallel replicat(並行投遞),相對於傳統的投遞和整合投遞(integrated replicat),在效能上又有了進一步提升。(需要使用oracle db 12.2及以上版本才支援並行投遞)
目標端採用多個mapper和執行緒,在確保事務一致的情況下,更大程度的效能提高。如下圖所示:
如上可以看到,計算事務順序和表依賴的工作是由OGG的PR程式完成,而不是象整合投遞中,在DB中完成。如下是整合投遞的示意圖:
可以看到,IR(Intergrated Replicat)投遞除了讀取佇列檔案外,其它許多工作都是在DB中完成的。
PR有兩種執行模式,一種是讀寫執行緒獨立於DB,但這些執行緒的管理是在DB的程式中完成,這與之前的整合投遞有點類似;另一種是讀寫執行緒和管理程式都獨立於DB之外。
配置示例
進入ogg12.3的ggsci命令列
$ cd $OGG_HOME/bin
$ bin> ./ggsci
建立PR程式
ggsci> add replicat rtest, parallel integrated, exttrail ./dirdat/tr, checkpointtable ogg.chkpt
編輯程式引數內容
ggsci> edit params rtest
replicat rtest userid ogg, password ogg --INSERTUPDATES REPERROR(1, DISCARD) MAP_PARALLELISM 2 MIN_APPLY_PARALLELISM 2 MAX_APPLY_PARALLELISM 8 SPLIT_TRANS_RECS 4 --TARGETCATALOG orcl MAP qasource.*, TARGET scott.*; |
啟動程式
ggsci> start replicat rtest
檢視程式狀態
GGSCI> send rtest, status
Sending STATUS request to REPLICAT RTEST ... Current status: At EOF Map Parallelism: 2 Min Apply Parallelism: 2 Current Apply Parallelism: 6 Max Apply Parallelism: 8 |