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 |