GoldenGate教程FG070-OGG跨地域容灾同步方案实战与优化
本文详细介绍OGG跨地域容灾同步方案的设计与实施,包括架构设计、网络优化、性能调优、故障切换等内容。风哥教程参考GoldenGate官方文档GoldenGate容灾指南、GoldenGate跨地域同步手册等内容,帮助读者掌握OGG跨地域容灾的实施技巧。
目录大纲
Part01-基础概念与理论知识
1.1 跨地域容灾概述
1.2 OGG跨地域同步架构
1.3 跨地域容灾需求分析
Part02-生产环境规划与建议
2.1 跨地域网络规划
2.2 跨地域容灾架构规划
2.3 跨地域性能优化规划
Part03-生产环境项目实施方案
3.1 OGG跨地域同步配置
3.2 OGG网络优化配置
3.3 OGG故障切换配置
Part04-生产案例与实战讲解
4.1 跨地域主备同步实战
4.2 跨地域双活同步实战
4.3 跨地域故障切换实战
Part05-风哥经验总结与分享
5.1 跨地域容灾最佳实践
5.2 跨地域性能优化经验总结
5.3 跨地域容灾常见问题与解决方案
Part01-基础概念与理论知识
1.1 跨地域容灾概述
跨地域容灾是指在不同地域之间建立数据同步和容灾机制,确保在主地域发生故障时能够快速切换到备地域,学习交流加群风哥微信: itpux-com。
容灾特点:
1. 地域隔离:主备地域物理隔离
2. 数据同步:实时或准实时数据同步
3. 快速切换:故障时快速切换
4. 数据一致:保证数据一致性
5. 业务连续:确保业务连续性
ping -c 10 192.168.1.100
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=2.5 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=2.3 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=2.4 ms
64 bytes from 192.168.1.100: icmp_seq=4 ttl=64 time=2.6 ms
64 bytes from 192.168.1.100: icmp_seq=5 ttl=64 time=2.4 ms
— 192.168.1.100 ping statistics —
5 packets transmitted, 5 received, 0% packet loss
rtt min/avg/max/mdev = 2.3/2.44/2.6/0.1 ms
1.2 OGG跨地域同步架构
OGG跨地域同步架构包括主备架构、双活架构、多活架构等多种模式。
架构类型:
1. 主备架构:主地域到备地域单向同步
2. 双活架构:主备地域双向同步
3. 多活架构:多个地域双向同步
4. 级联架构:多级地域同步
5. 混合架构:多种架构组合
cd /GoldenGate/app
./ggsci
Version 23.0.0.0.0
GGSCI (fgedu.net.cn) 1> INFO ALL
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING E_PRIMARY 00:00:05 00:00:00
EXTRACT RUNNING E_SECONDARY 00:00:03 00:00:01
REPLICAT RUNNING R_PRIMARY 00:00:07 00:00:02
REPLICAT RUNNING R_SECONDARY 00:00:06 00:00:01
1.3 跨地域容灾需求分析
跨地域容灾需要满足RPO(恢复点目标)和RTO(恢复时间目标)等关键指标。
容灾需求:
1. RPO要求:数据丢失时间要求
2. RTO要求:恢复时间要求
3. 数据一致性:数据一致性要求
4. 网络带宽:网络带宽需求
5. 成本控制:容灾成本控制
Part02-生产环境规划与建议
2.1 跨地域网络规划
跨地域网络规划是容灾成功的关键,需要考虑网络带宽、延迟、稳定性等因素。
网络规划:
1. 专线连接:使用专线保证质量
2. 带宽充足:保证足够的网络带宽
3. 网络优化:优化网络配置
4. 冗余链路:建立冗余网络链路
5. 监控告警:建立网络监控告警
iperf3 -c 192.168.1.100 -t 60
[ 5] local 192.168.1.1 port 5201 connected to 192.168.1.100 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 125 MBytes 1.05 Gbits/sec 0 1.01 MBytes
[ 5] 1.00-2.00 sec 124 MBytes 1.04 Gbits/sec 0 1.01 MBytes
[ 5] 2.00-3.00 sec 126 MBytes 1.06 Gbits/sec 0 1.01 MBytes
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-60.00 sec 7.50 GBytes 1.05 Gbits/sec 0 sender
[ 5] 0.00-60.00 sec 7.50 GBytes 1.05 Gbits/sec receiver
iperf Done.
2.2 跨地域容灾架构规划
根据业务需求,设计合理的跨地域容灾架构。
架构规划:
1. 主备架构:简单可靠,适合大多数场景
2. 双活架构:性能更好,但复杂度更高
3. 多活架构:适合大规模应用
4. 级联架构:适合多地域场景
5. 混合架构:根据需求灵活组合
2.3 跨地域性能优化规划
跨地域同步性能优化是确保容灾效果的关键。
性能优化:
1. 批量处理:批量处理提高效率
2. 压缩传输:压缩数据减少传输量
3. 并行处理:并行处理提高吞吐
4. 缓存优化:合理使用缓存
5. 网络优化:优化网络配置
Part03-生产环境项目实施方案
3.1 OGG跨地域同步配置
配置OGG跨地域同步。
GGSCI (fgedu.net.cn)> ADD EXTRACT E_PRIMARY, INTEGRATED TRANLOG, BEGIN NOW
GGSCI (fgedu.net.cn)> ADD EXTTRAIL /GoldenGate/app/dirdat/pr, EXTRACT E_PRIMARY, MEGABYTES 1000
GGSCI (fgedu.net.cn)> EDIT PARAMS E_PRIMARY
EXTRACT E_PRIMARY
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/app/dirdat/pr
— 表映射配置
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;
GGSCI (fgedu.net.cn)> ADD EXTRACT P_PRIMARY, SOURCEISTABLE
GGSCI (fgedu.net.cn)> ADD RMTTRAIL /GoldenGate/app/dirdat/pr, EXTRACT P_PRIMARY
GGSCI (fgedu.net.cn)> EDIT PARAMS P_PRIMARY
EXTRACT P_PRIMARY
RMTHOST 192.168.1.100, MGRPORT 7809, COMPRESS
RMTTRAIL /GoldenGate/app/dirdat/pr
— 表映射配置
TABLE fgedu01.*;
GGSCI (fgedu.net.cn)> ADD REPLICAT R_PRIMARY, EXTTRAIL /GoldenGate/app/dirdat/pr, CHECKPOINTTABLE fgedu.ogg_chkpt
GGSCI (fgedu.net.cn)> EDIT PARAMS R_PRIMARY
REPLICAT R_PRIMARY
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
BATCHSQL
BATCHTRANSOPS 10000
— 表映射配置
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网络优化配置
配置OGG网络优化参数。
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
PORT 7809
DYNAMICPORTLIST 7810-7900
AUTOSTART EXTRACT E_PRIMARY
AUTOSTART REPLICAT R_PRIMARY
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
GGSCI (fgedu.net.cn)> EDIT PARAMS E_PRIMARY
EXTRACT E_PRIMARY
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/app/dirdat/pr
— 性能优化参数
FETCHOPTIONS NOUSESNAPSHOT
GETTRUNCATES
TRANLOGOPTIONS EXCLUDEUSER fgedu
— 表映射配置
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;
GGSCI (fgedu.net.cn)> EDIT PARAMS P_PRIMARY
EXTRACT P_PRIMARY
RMTHOST 192.168.1.100, MGRPORT 7809, COMPRESS, TCPBUFSIZE 1048576
RMTTRAIL /GoldenGate/app/dirdat/pr
— 性能优化参数
FETCHOPTIONS FETCHPKUPDATECOLS
GROUPTRANSOPS 10000
MAXTRANSOPS 1000
— 表映射配置
TABLE fgedu01.*;
3.3 OGG故障切换配置
配置OGG故障切换机制。
vi /GoldenGate/app/scripts/failover.sh
# failover.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
LOG_FILE=$OGG_HOME/logs/failover.log
echo “========== 故障切换: $(date) ==========” >> $LOG_FILE
# 停止主地域OGG进程
cd $OGG_HOME
./ggsci << EOF >> $LOG_FILE 2>&1
STOP *
EXIT
EOF
echo “停止主地域OGG进程完成” >> $LOG_FILE
# 启动备地域OGG进程
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
START *
EXIT
GGSCI
EOF
echo “启动备地域OGG进程完成” >> $LOG_FILE
# 验证切换
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
INFO ALL
EXIT
GGSCI
EOF
echo “故障切换完成” >> $LOG_FILE
chmod +x /GoldenGate/app/scripts/failover.sh
/GoldenGate/app/scripts/failover.sh
停止主地域OGG进程完成
启动备地域OGG进程完成
故障切换完成
Part04-生产案例与实战讲解
4.1 跨地域主备同步实战
本案例展示跨地域主备同步的实施。
GGSCI (fgedu.net.cn)> START EXTRACT E_PRIMARY
EXTRACT E_PRIMARY starting
Extract started successfully.
GGSCI (fgedu.net.cn)> START EXTRACT P_PRIMARY
EXTRACT P_PRIMARY starting
Extract started successfully.
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
START REPLICAT R_PRIMARY
EXIT
GGSCI
EOF
REPLICAT R_PRIMARY starting
Replicat started successfully.
GGSCI (fgedu.net.cn)> LAG EXTRACT P_PRIMARY
EXTRACT P_PRIMARY
Lag 00:00:05
At 2024-01-15 10:35:00
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
LAG REPLICAT R_PRIMARY
EXIT
GGSCI
EOF
REPLICAT R_PRIMARY
Lag 00:00:07
At 2024-01-15 10:35:00
4.2 跨地域双活同步实战
展示跨地域双活同步的实施。
GGSCI (fgedu.net.cn)> ADD EXTRACT E_SECONDARY, INTEGRATED TRANLOG, BEGIN NOW
GGSCI (fgedu.net.cn)> ADD EXTTRAIL /GoldenGate/app/dirdat/se, EXTRACT E_SECONDARY, MEGABYTES 1000
GGSCI (fgedu.net.cn)> EDIT PARAMS E_SECONDARY
EXTRACT E_SECONDARY
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/app/dirdat/se
— 表映射配置
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;
GGSCI (fgedu.net.cn)> ADD EXTRACT P_SECONDARY, SOURCEISTABLE
GGSCI (fgedu.net.cn)> ADD RMTTRAIL /GoldenGate/app/dirdat/se, EXTRACT P_SECONDARY
GGSCI (fgedu.net.cn)> EDIT PARAMS P_SECONDARY
EXTRACT P_SECONDARY
RMTHOST 192.168.1.1, MGRPORT 7809, COMPRESS
RMTTRAIL /GoldenGate/app/dirdat/se
— 表映射配置
TABLE fgedu01.*;
GGSCI (fgedu.net.cn)> ADD REPLICAT R_SECONDARY, EXTTRAIL /GoldenGate/app/dirdat/se, CHECKPOINTTABLE fgedu.ogg_chkpt
GGSCI (fgedu.net.cn)> EDIT PARAMS R_SECONDARY
REPLICAT R_SECONDARY
USERID fgedu, PASSWORD fgedu123
ASSUMETARGETDEFS
BATCHSQL
BATCHTRANSOPS 10000
— 表映射配置
MAP fgedu01.fgedu_orders, TARGET fgedu01.fgedu_orders;
MAP fgedu01.fgedu_products, TARGET fgedu01.fgedu_products;
MAP fgedu01.fgedu_customers, TARGET fgedu01.fgedu_customers;
4.3 跨地域故障切换实战
展示跨地域故障切换的实施。
GGSCI (fgedu.net.cn)> STOP *
EXTRACT E_PRIMARY stopping
EXTRACT P_PRIMARY stopping
REPLICAT R_SECONDARY stopping
All processes stopped successfully.
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
START *
EXIT
GGSCI
EOF
EXTRACT E_SECONDARY starting
EXTRACT P_SECONDARY starting
REPLICAT R_PRIMARY starting
All processes started successfully.
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
INFO ALL
EXIT
GGSCI
EOF
MANAGER RUNNING
EXTRACT RUNNING E_SECONDARY 00:00:02 00:00:00
EXTRACT RUNNING P_SECONDARY 00:00:03 00:00:01
REPLICAT RUNNING R_PRIMARY 00:00:05 00:00:02
sqlplus fgedu/fgedu123@fgedudb01
Connected.
SQL> INSERT INTO fgedu01.fgedu_orders (
order_id, customer_id, order_date,
order_status, total_amount, create_time
) VALUES (
20240001, 500123, SYSDATE,
‘PENDING’, 1500.00, SYSDATE
);
SQL> COMMIT;
ssh fgedu@192.168.1.100 << 'EOF'
sqlplus fgedu/fgedu123@fgedudb02 << 'SQL'
SELECT * FROM fgedu01.fgedu_orders WHERE order_id = 20240001;
EXIT;
SQL
EOF
——– ———– ——————- ———— ———– ——————-
20240001 500123 2024-01-15 10:35:00 PENDING 1500.00 2024-01-15 10:35:00
Part05-风哥经验总结与分享
5.1 跨地域容灾最佳实践
基于实际项目经验,总结跨地域容灾的最佳实践。
最佳实践:
1. 架构设计:设计合理的容灾架构
2. 网络优化:优化网络配置
3. 性能调优:持续优化性能
4. 监控告警:建立完善的监控
5. 定期演练:定期进行容灾演练
5.2 跨地域性能优化经验总结
总结跨地域性能优化的经验和技巧。
优化经验:
1. 批量处理:批量处理提高效率
2. 压缩传输:压缩数据减少传输量
3. 并行处理:并行处理提高吞吐
4. 缓存优化:合理使用缓存
5. 网络优化:优化网络配置
5.3 跨地域容灾常见问题与解决方案
汇总跨地域容灾的常见问题及解决方案。
常见问题与解决方案:
1. 网络延迟:优化网络配置
2. 数据不一致:设计合理的冲突处理策略
3. 性能问题:优化配置和硬件
4. 切换失败:完善切换流程
5. 数据丢失:加强监控和备份
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
