工艺流程
有效对象
复制
说明
使用 GROUPTRANSOPS 参数可以控制在复制事务处理正常模式下运行时所包含的 SQL 操作数。有关将 GROUPTRANSOPS 与 BATCHSQL 一起使用的信息,请参见 BATCHSQL 参数,该参数提供了其他选项来更改如何将事务应用于目标数据库,这可能会提高复制性能。
通过增加 Replicat 事务处理中 <number> 的操作,可以通过以下方式提高 Oracle GoldenGate 的性能:
-
减少 Replicat 执行的事务数。
-
将 I/O 活动减少到检查点文件和检查点表(如果使用)。在将事务处理应用于目标时,除了调度的检查点之外,复制还会发出检查点。
复制按事务处理顺序从源事务处理累计操作,并将其作为组应用于目标上的一个事务处理。GROUPTRANSOPS 设置最小值而不是绝对值,以避免分离源事务处理。在应用目标事务处理之前,复制将一直等待,直到收到组中最后一个源事务处理的所有操作。
例如,如果事务 1 包含 200 个操作,事务 2 包含 400 个操作,事务 3 包含 500 个操作,则复制事务包含所有 1,100 个操作,即使 GROUPTRANSOPS 设置为默认值 1,000。相反,如果线索中没有更多要处理的数据,复制可能会在达到 GROUPTRANSOPS 设置的值之前应用事务处理。
表 10 复制 GROUPTRANSOPS
| 源事务处理(假定表和列列表相同) | 正常 (GROUPTRANSOPS) 模式下的复制事务 |
|---|---|
事务处理 1: ` 插入 ` ` 删除 ` 事务处理 2: ` 插入 ` ` 删除 ` 事务处理 3: ` 插入 ` ` 删除 ` |
事务处理: ` 插入 ` ` 删除 ` ` 插入 ` ` 删除 ` ` 插入 ` ` 删除 ` |
避免将 GROUPTRANSOPS 设置为任意上限,因为源事务处理边界和目标事务处理边界之间的差异会增加目标数据的延迟。
(仅限 Oracle)对于集成复制,仅当集成复制参数 PARALLELISM 设置为 1 时,GROUPTRANSOPS 才有效。
默认值
非集成复制:1000 个操作,集成复制:50 个操作
语法
GROUPTRANSOPS <number>
<number>
要在复制事务处理中应用的最小操作数。值 1 将执行与源事务处理相同的事务处理边界内的操作。该值必须至少为 1。
示例
GROUPTRANSOPS 2000