您的位置:首页 > 编程语言 > Go语言

goldengate的replicat简单拆分

2016-03-24 15:34 309 查看
对于Goldengate来说,ext的capture进程一般不会有很大的瓶颈,一般不需要拆分,理由是捕获进程只是将log的做一个简单转换,提取有用的信息,一般能提取出的数据为log的40%,但是当trail文件传到目标端,replicat进程对它recover需要转化成sql,这是一个耗时的过程,远远比捕获耗时,所以capture经常需要拆分。

案例:经分析在test用户上有一张大表(t1),用户对其的操作特别频繁,所以需要把这张大表单独提取出来做一个replicat。

1. 停止需要拆分的复制进程

2. 查看当前复制进程的队列号及RBA号并记录

或者使用 info RPT_APP2 showch查看

3. 编辑原来的replicat进程参数

编辑成如下:

或者使用mapexclude(该参数高于所有的map语句,所以它的位子放在任何一行都没事)

4. 新建一个replicat rept1

1. 编辑新replicat参数

2. 添加rept1到ogg中

上面的exttrail文件必须使用原来的,然后checkpoint也必须使用原来的(exttrail使用info
<原replicat进程名>
就可以得到就是那个trail文件去掉后面6位就是,然后检查点表可以通过 info <原replicat进程名>
detail 就可以得到)

5. 指定新replicat的启动时的位置(这里用到step2查的位置信息)

6. 启动两个replicat

Start rpt_app2

Start rept1

作为实现goldengate best practice的建议之一,oracle建议:"To avoid contention, Oracle recommends that when reading trailfiles, you pair each Replicat with its own trail file".也就是说,当考虑拆分replicat来实现并行复制时,oracle建议最好从pump组件开始拆分(因为rpt需要自己的trail,但是trail是pmp创建的,和pmp一对一的关系),以下步骤。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: