配置ogg时pump进程一定要配置吗

配置ogg时pump进程一定要配置吗,第1张

不是必需的,pump进程是extract进程的一种。实际上你可以直接用extract进程配置rmthost rmtfile直接可以投递到目标端。如果源和目标在同一主机,只需要一个普通extract进程就可以。

Goldengate的拆分与合并

分类: ORACLE GoldenGate 2013-10-10 15:22 721人阅读 评论(0) 收藏 举报

在使用Goldengate作为复制解决方案时,随着负载的增加,replicat组件常常是最先出现性能瓶颈的。为了适应不断增加的负载,就需要拆分replicat来实现并行复制,本文介绍Goldengate拆分的具体实施步骤。同时,作为拆分的逆向 *** 作,介绍如何将拆分的多个replicat合并回一个replicat。

拆分的方式一般分为两种:

一种是用goldengate提供的@RANGE函数作表内的拆分,通过对表上主键列作hash算法将该表上发生的变更均分到多个replicat上来降低单个replicat组件的负载;

另一种是将复制的表划分成几组,使用多个replicat组件来分别复制其中的一组表。

前一种拆分和合并方式的具体步骤参考metalink文档:1320133.1和1512633.1。

本文介绍后一种拆分方式的实现步骤。

为了实现对表分组拆分,首先要考虑如何分组,通常我们可以按表的负载来划分。

通过以下命令,生成近一段时间复制的统计report

GGSCI>send rep01,report

在report文件中可以看到各个表上在过去一段时间分别发生了多少变更,进而按负载将表均分到多个replicat组件中。

接下来以将一路replicat拆分成两路的案例介绍具体实施步骤:

replicat进程的拆分与合并

拆分:

1.停止replicat进程

cd $GG_HOME

ggsci

GGSCI>stop rep01

2.将两个新的replicat参数文件拷贝到$GG_HOME/dirprm目录中。

这两个新的参数文件与原有的参数文件的主要区别是将其中的复制表按负载均分为了两部分,分别放在单独的参数文件中。

3.创建新的replicat组件

GGSCI>add checkpointtable chk_yl01a

GGSCI>add checkpointtable chk_yl01b

GGSCI>ADD REPLICAT rep01a,EXTTRAIL /oracle/goldengate/ggs/dirdat/r1 checkpointtable chk_yl01a

GGSCI>ADD REPLICAT rep02a,EXTTRAIL /oracle/goldengate/ggs/dirdat/r1 checkpointtable chk_yl01b

4.检查replicat进程的checkpoint信息

GGSCI>info rep01,showch

记录下其Current Checkpoint信息中的sequence和RBA值。

Current Checkpoint (position of last record read in the data source):

Sequence #: 2157

RBA: 2856752

Timestamp: 2013-09-03 08:13:58.035316

Extract Trail: /oracle/goldengate/ggs/dirdat/r1

5.修改新建replicat进程的read checkpoint信息

根据step 4中得到的Current checkpoint信息修改新建replicat进程的checkpoint信息,之后新建的replicat进程就会从旧replicat进程停止的位置开始抓取新的信息

GGSCI>alter rep01a, extseqno <sequence>, extrba <RBA>

GGSCI>alter rep02a, extseqno <sequence >, extrba <RBA>

6.启动新建的replicat进程

GGSCI>start rep01a

GGSCI>start rep02a

7.删除旧的replicat进程

GGSCI>dblogin userid <gg user>,password ***

GGSCI>delete rep01

合并:

1.停止extract进程

cd $GG_HOME

ggsci

GGSCI>stop ext01

2.检查extract进程的checkpoint信息

GGSCI>info ext01,showch

记录下其Write Checkpoint信息中的sequence和RBA值,比如:

Write Checkpoint #1

GGS Log Trail

Current Checkpoint (current write position):

Sequence #: 2157

RBA: 36277005

3.检查pump进程的checkpoint信息

GGSCI>info pump01,showch

若pump进程的Current Checkpoint信息中的sequence和RBA值与step 2得到的值相等,则说明goldengate抓取的信息都已被传送到了target服务器上,可继续执行下一步骤。否则,等待并重复运行该命令。

比如:

Current Checkpoint (position of last record read in the data source):

Sequence #: 2157

RBA: 36277005

同时,记录下其Write Checkpoint信息中的sequence和RBA值。

比如:

Write Checkpoint #1

GGS Log Trail

Current Checkpoint (current write position):

Sequence #: 2160

RBA: 41659507

4.检查replicat进程的checkpoint信息

GGSCI>info rep01a,showch

GGSCI>info rep02a,showch

若replicat进程的Current Checkpoint信息中的sequence和RBA值与step 3中得到的Write Checkpoint信息相等,则说明goldengate抓取的信息都已被apply到target db,可继续执行下一步骤。否则,等待并重复运行该命令。

比如:

Current Checkpoint (position of last record read in the data source):

Sequence #: 2160

RBA: 41659507

5.停止旧的replicat进程

GGSCI>stop rep01a

GGSCI>stop rep02a

6.将合并后新的replicat参数文件拷贝到$GG_HOME/dirprm目录中。

合并后新的参数文件是将原有的两个参数文件中的表合并到了一个文件中。

7.创建新的replicat进程

GGSCI>ADD REPLICAT rep01,EXTTRAIL /oracle/goldengate/ggs/dirdat/r1

8.修改新建replicat进程的read checkpoint信息

根据step 4中得到的Current checkpoint信息修改新建replicat进程的checkpoint信息,之后新建的replicat进程就会从旧replicat进程停止的位置开始抓取新的信息

GGSCI>alter rep01, extseqno <sequence>, extrba <RBA>

9.启动新建的replicat进程

GGSCI>start rep01

10.启动extract进程

GGSCI>start ext01

11.删除旧的replicat进程

GGSCI>dblogin userid <gg user>,password ***

GGSCI>delete rep01a

GGSCI>delete rep02a


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11921535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存