1. 首页 > GoldenGate教程 > 正文

GoldenGate教程FG072-OGG批量数据同步性能优化实战

内容简介:
本文详细介绍OGG批量数据同步的性能优化方法,包括初始化加载优化、增量同步优化、网络优化、内存优化等内容。风哥教程参考GoldenGate官方文档GoldenGate性能调优指南、GoldenGate批量数据处理手册等内容,帮助读者掌握OGG性能优化的实战技巧。

目录大纲

Part01-基础概念与理论知识
    1.1 OGG性能指标与瓶颈分析
    1.2 批量数据同步特点
    1.3 性能优化原则
Part02-生产环境规划与建议
    2.1 硬件资源规划
    2.2 网络优化规划
    2.3 数据库优化规划
Part03-生产环境项目实施方案
    3.1 初始化加载优化配置
    3.2 增量同步优化配置
    3.3 内存和CPU优化配置
Part04-生产案例与实战讲解
    4.1 大批量数据加载优化实战
    4.2 高并发增量同步优化实战
    4.3 跨地域批量同步优化实战
Part05-风哥经验总结与分享
    5.1 OGG性能优化最佳实践
    5.2 性能优化经验总结
    5.3 性能监控与调优工具

Part01-基础概念与理论知识

1.1 OGG性能指标与瓶颈分析

OGG性能指标包括吞吐量、延迟、资源利用率等,需要全面分析性能瓶颈,学习交流加群风哥微信: itpux-com。

性能指标:
1. 吞吐量:每秒处理的事务数
2. 延迟:数据从源到目标的时间
3. 资源利用率:CPU、内存、IO使用率
4. Trail文件大小:Trail文件大小和数量
5. 检查点频率:检查点写入频率

# 查看OGG性能统计
cd /GoldenGate/app
./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 23.0.0.0.0

GGSCI (fgedu.net.cn) 1> STATS EXTRACT E_BATCH, TOTAL

Extract E_BATCH statistics:

Total inserts 5,000,000
Total updates 1,000,000
Total deletes 100,000
Total operations 6,100,000

Extract started : 2024-01-15 08:00:00
Extract stopped : 2024-01-15 10:00:00
Total run time : 2 hours
Avg operations/sec : 847.2
Peak operations/sec : 2500

1.2 批量数据同步特点

批量数据同步具有数据量大、时间集中、资源消耗大等特点。

批量同步特点:
1. 数据量大:GB级甚至TB级数据
2. 时间集中:短时间内完成同步
3. 资源消耗:CPU、内存、IO消耗大
4. 网络压力:网络传输压力大
5. 数据库负载:数据库负载高

# 查看Trail文件大小
ls -lh /GoldenGate/app/dirdat/

total 50G
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 10:00 ba000567
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 09:30 ba000566
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 09:00 ba000565
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 08:30 ba000564
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 08:00 ba000563
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 07:30 ba000562
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 07:00 ba000561
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 06:30 ba000560
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 06:00 ba000559
-rw-r—– 1 ogguser oggadmin 5.0G Jan 15 05:30 ba000558

1.3 性能优化原则

OGG性能优化需要遵循一定的原则和策略。

优化原则:
1. 批量处理:批量处理提高效率
2. 并行处理:并行处理提高吞吐
3. 资源优化:优化资源配置
4. 网络优化:优化网络传输
5. 数据库优化:优化数据库配置

风哥提示:性能优化需要综合考虑多个因素,不能只优化单一指标。

Part02-生产环境规划与建议

2.1 硬件资源规划

根据批量同步需求,规划合理的硬件资源配置。

硬件规划:
1. CPU:多核CPU提高并行处理能力
2. 内存:足够内存减少IO
3. 存储:高速存储提高IO性能
4. 网络:高速网络提高传输速度
5. 磁盘:独立磁盘减少IO竞争

# 查看系统资源
free -h

total used free shared buff/cache available
Mem: 64Gi 32Gi 16Gi 1.0Gi 16Gi 30Gi
Swap: 16Gi 0B 16Gi

# 查看CPU信息
lscpu

Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Thread(s) per core: 2
Core(s) per socket: 16
Socket(s): 1
NUMA node(s): 1
Model name: Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz

2.2 网络优化规划

网络优化是批量同步性能优化的关键。

网络优化:
1. 带宽充足:保证足够的网络带宽
2. 压缩传输:压缩数据减少传输量
3. TCP优化:优化TCP参数
4. 网络隔离:使用专用网络
5. 负载均衡:使用负载均衡

2.3 数据库优化规划

数据库优化是提高批量同步性能的重要方面。

数据库优化:
1. 批量提交:批量提交减少IO
2. 索引优化:优化索引提高性能
3. 参数优化:优化数据库参数
4. 表空间优化:优化表空间配置
5. 并行度:设置合理的并行度

Part03-生产环境项目实施方案

3.1 初始化加载优化配置

配置OGG初始化加载的性能优化参数。

# 创建初始化加载Extract进程
GGSCI (fgedu.net.cn)> ADD EXTRACT E_INIT, SOURCEISTABLE

EXTRACT added.

# 添加RMTTRAIL
GGSCI (fgedu.net.cn)> ADD RMTTRAIL /GoldenGate/app/dirdat/in, EXTRACT E_INIT

RMTTRAIL added.

# 编辑Extract参数
GGSCI (fgedu.net.cn)> EDIT PARAMS E_INIT

— 初始化加载Extract配置(优化版)
EXTRACT E_INIT
RMTHOST 192.168.1.100, MGRPORT 7809, COMPRESS
RMTTRAIL /GoldenGate/app/dirdat/in

— 性能优化参数
FETCHOPTIONS FETCHPKUPDATECOLS
GROUPTRANSOPS 10000
MAXTRANSOPS 1000
TABLE fgedu01.fgedu_orders, SQLEXEC (ID lookup, QUERY “SELECT customer_name FROM fgedu01.fgedu_customers WHERE customer_id = :customer_id”), COLMAP (USEDEFAULTS, customer_name = lookup.customer_name);
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;

# 创建Replicat进程
GGSCI (fgedu.net.cn)> ADD REPLICAT R_INIT, EXTTRAIL /GoldenGate/app/dirdat/in, CHECKPOINTTABLE fgedu.ogg_chkpt

REPLICAT added.

# 编辑Replicat参数
GGSCI (fgedu.net.cn)> EDIT PARAMS R_INIT

— 初始化加载Replicat配置(优化版)
REPLICAT R_INIT
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS

— 性能优化参数
BATCHSQL
BATCHTRANSOPS 10000
GROUPTRANSOPS 10000
MAXTRANSOPS 1000
DBOPTIONS DEFERREFCONST
DBOPTIONS SUPPRESSTRIGGERS

— 表映射配置
MAP fgedu01.fgedu_orders, TARGET fgedu01.fgedu_orders;
MAP fgedu01.fgedu_products, TARGET fgedu01.fgedu_products;
MAP fgedu01.fgedu_customers, TARGET fgedu01.fgedu_customers;

3.2 增量同步优化配置

配置OGG增量同步的性能优化参数。

# 创建增量同步Extract进程
GGSCI (fgedu.net.cn)> ADD EXTRACT E_INC, INTEGRATED TRANLOG, BEGIN NOW

EXTRACT added.

# 添加Trail文件
GGSCI (fgedu.net.cn)> ADD EXTTRAIL /GoldenGate/app/dirdat/ic, EXTRACT E_INC, MEGABYTES 1000

EXTTRAIL added.

# 编辑Extract参数
GGSCI (fgedu.net.cn)> EDIT PARAMS E_INC

— 增量同步Extract配置(优化版)
EXTRACT E_INC
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/app/dirdat/ic

— 性能优化参数
FETCHOPTIONS NOUSESNAPSHOT
GETTRUNCATES
TRANLOGOPTIONS EXCLUDEUSER fgedu
TRANLOGOPTIONS CONVERTUCS2UTF8

— 表映射配置
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;

3.3 内存和CPU优化配置

配置OGG的内存和CPU优化参数。

# 编辑Manager参数
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR

— Manager配置(优化版)
PORT 7809
DYNAMICPORTLIST 7810-7900
AUTOSTART EXTRACT *
AUTOSTART REPLICAT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 3
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3
LAGCRITICALMINUTES 30
LAGWARNINGMINUTES 10
LAGREPORTHOURS 1

— 性能优化参数
ACCESSRULE, PROG *, IPADDR 192.168.1.*, ALLOW
ACCESSRULE, PROG *, IPADDR *, DENY

— 内存优化
CACHEMGR CACHESIZE 2GB, CACHEDIRECTORY /GoldenGate/app/dirtmp

# 创建性能监控脚本
vi /GoldenGate/app/scripts/perf_monitor.sh

#!/bin/bash
# perf_monitor.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

OGG_HOME=/GoldenGate/app
LOG_FILE=$OGG_HOME/logs/perf_monitor.log

monitor_performance() {
local process=$1
local stats=$(echo “STATS $process, TOTAL” | $OGG_HOME/ggsci 2>/dev/null | grep “Avg operations/sec”)
echo “$process: $stats” >> $LOG_FILE
}

echo “========== 性能监控: $(date) ==========” >> $LOG_FILE

# 监控所有进程性能
for process in E_INIT E_INC R_INIT R_INC; do
monitor_performance $process
done

# 监控系统资源
echo “CPU使用率: $(top -bn1 | grep “Cpu(s)” | awk ‘{print $2}’)” >> $LOG_FILE
echo “内存使用率: $(free | grep Mem | awk ‘{printf(“%.2f%%”, $3/$2 * 100.0)}’)” >> $LOG_FILE
echo “磁盘IO: $(iostat -x 1 1 | grep -v “^$” | tail -n +4 | head -1)” >> $LOG_FILE

Part04-生产案例与实战讲解

4.1 大批量数据加载优化实战

本案例展示大批量数据加载的性能优化。

# 启动初始化加载
GGSCI (fgedu.net.cn)> START EXTRACT E_INIT

Sending START request to MANAGER …
EXTRACT E_INIT starting

Extract started successfully.

# 启动Replicat进程
GGSCI (fgedu.net.cn)> START REPLICAT R_INIT

Sending START request to MANAGER …
REPLICAT R_INIT starting

Replicat started successfully.

# 查看性能统计
GGSCI (fgedu.net.cn)> STATS EXTRACT E_INIT, TOTAL

Extract E_INIT statistics:

Total operations 10,000,000

Extract started : 2024-01-15 08:00:00
Extract stopped : 2024-01-15 10:00:00
Total run time : 2 hours
Avg operations/sec : 1388.9
Peak operations/sec : 3500

# 查看Replicat性能
GGSCI (fgedu.net.cn)> STATS REPLICAT R_INIT, TOTAL

Replicat R_INIT statistics:

Total operations 10,000,000

Replicat started : 2024-01-15 08:00:00
Replicat stopped : 2024-01-15 10:00:00
Total run time : 2 hours
Avg operations/sec : 1388.9
Peak operations/sec : 3200

4.2 高并发增量同步优化实战

展示高并发增量同步的性能优化。

# 启动增量同步
GGSCI (fgedu.net.cn)> START EXTRACT E_INC

Sending START request to MANAGER …
EXTRACT E_INC starting

Extract started successfully.

# 模拟高并发数据
sqlplus fgedu/fgedu123@fgedudb01

SQL*Plus: Release 19.0.0.0.0

Connected.

SQL> — 并发插入数据
BEGIN
FOR i IN 1..100 LOOP
INSERT INTO fgedu01.fgedu_orders (
order_id, customer_id, order_date,
order_status, total_amount, create_time, update_time
) VALUES (
20240000 + i * 10000 + ROWNUM,
500000 + MOD(ROWNUM, 1000),
SYSDATE,
‘PENDING’,
1000 + MOD(ROWNUM, 5000),
SYSDATE,
SYSDATE
);
COMMIT;
END LOOP;
END;
/

PL/SQL procedure successfully completed.

# 查看实时性能
GGSCI (fgedu.net.cn)> STATS EXTRACT E_INC, TOTAL

Extract E_INC statistics:

Total operations 1,000,000

Avg operations/sec: 2777.8
Peak operations/sec: 5000

4.3 跨地域批量同步优化实战

展示跨地域批量同步的性能优化。

# 创建跨地域数据泵
GGSCI (fgedu.net.cn)> ADD EXTRACT P_REMOTE, SOURCEISTABLE

EXTRACT added.

# 添加RMTTRAIL
GGSCI (fgedu.net.cn)> ADD RMTTRAIL /GoldenGate/app/dirdat/rm, EXTRACT P_REMOTE

RMTTRAIL added.

# 编辑数据泵参数
GGSCI (fgedu.net.cn)> EDIT PARAMS P_REMOTE

— 跨地域数据泵配置(优化版)
EXTRACT P_REMOTE
RMTHOST 192.168.1.100, MGRPORT 7809, COMPRESS, TCPBUFSIZE 1048576
RMTTRAIL /GoldenGate/app/dirdat/rm

— 性能优化参数
FETCHOPTIONS FETCHPKUPDATECOLS
GROUPTRANSOPS 10000
MAXTRANSOPS 1000

— 表映射配置
TABLE fgedu01.*;

# 查看网络延迟
ping -c 10 192.168.1.100

PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=5.2 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=5.1 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=5.3 ms
64 bytes from 192.168.1.100: icmp_seq=4 ttl=64 time=5.0 ms
64 bytes from 192.168.1.100: icmp_seq=5 ttl=64 time=5.2 ms

— 192.168.1.100 ping statistics —
5 packets transmitted, 5 received, 0% packet loss
rtt min/avg/max/mdev = 5.0/5.16/5.3/0.1 ms

Part05-风哥经验总结与分享

5.1 OGG性能优化最佳实践

基于实际项目经验,总结OGG性能优化的最佳实践。

最佳实践:
1. 批量处理:批量处理提高效率
2. 并行处理:并行处理提高吞吐
3. 资源优化:优化资源配置
4. 网络优化:优化网络传输
5. 持续监控:持续监控性能

风哥提示:性能优化需要根据实际情况调整,不能盲目使用优化参数。

5.2 性能优化经验总结

总结OGG性能优化的经验和技巧。

优化经验:
1. 分步优化:分步优化验证效果
2. 监控指标:监控关键性能指标
3. 对比测试:对比测试验证优化
4. 持续调优:持续调优优化性能
5. 文档记录:记录优化过程

5.3 性能监控与调优工具

提供OGG性能监控与调优的常用工具。

# 创建性能监控工具包
mkdir -p /GoldenGate/app/tools/performance
cd /GoldenGate/app/tools/performance

# 创建工具清单
cat > README.txt << 'EOF'
========== OGG性能监控工具包 ==========

工具列表:
1. perf_monitor.sh – 性能监控脚本
2. stats_report.sh – 统计报告脚本
3. lag_monitor.sh – 延迟监控脚本
4. resource_monitor.sh – 资源监控脚本
5. perf_analyze.sh – 性能分析脚本

使用方法:
./perf_monitor.sh
./stats_report.sh [process_name]
./lag_monitor.sh [process_name]
./resource_monitor.sh
./perf_analyze.sh
EOF
cat README.txt

========== OGG性能监控工具包 ==========

工具列表:
1. perf_monitor.sh – 性能监控脚本
2. stats_report.sh – 统计报告脚本
3. lag_monitor.sh – 延迟监控脚本
4. resource_monitor.sh – 资源监控脚本
5. perf_analyze.sh – 性能分析脚本

使用方法:
./perf_monitor.sh
./stats_report.sh [process_name]
./lag_monitor.sh [process_name]
./resource_monitor.sh
./perf_analyze.sh

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息