1. 首页 > GoldenGate教程 > 正文

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

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=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. 混合架构:多种架构组合

# 查看OGG进程状态
cd /GoldenGate/app
./ggsci

Oracle GoldenGate Command Interpreter for Oracle
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. 成本控制:容灾成本控制

风哥提示:跨地域容灾需要综合考虑RPO、RTO、成本等多个因素。

Part02-生产环境规划与建议

2.1 跨地域网络规划

跨地域网络规划是容灾成功的关键,需要考虑网络带宽、延迟、稳定性等因素。

网络规划:
1. 专线连接:使用专线保证质量
2. 带宽充足:保证足够的网络带宽
3. 网络优化:优化网络配置
4. 冗余链路:建立冗余网络链路
5. 监控告警:建立网络监控告警

# 测试网络带宽
iperf3 -c 192.168.1.100 -t 60

Connecting to host 192.168.1.100, port 5201
[ 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跨地域同步。

# 创建主地域Extract进程
GGSCI (fgedu.net.cn)> ADD EXTRACT E_PRIMARY, INTEGRATED TRANLOG, BEGIN NOW

EXTRACT added.

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

EXTTRAIL added.

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

— 主地域Extract配置
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

EXTRACT added.

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

RMTTRAIL added.

# 编辑数据泵参数
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.*;

# 在备地域创建Replicat进程
GGSCI (fgedu.net.cn)> ADD REPLICAT R_PRIMARY, EXTTRAIL /GoldenGate/app/dirdat/pr, CHECKPOINTTABLE fgedu.ogg_chkpt

REPLICAT added.

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

— 备地域Replicat配置
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网络优化参数。

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

— Manager配置
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

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

— 主地域Extract配置(优化版)
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

#!/bin/bash
# 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

========== 故障切换: Mon Jan 15 10:00:00 CST 2024 ==========
停止主地域OGG进程完成
启动备地域OGG进程完成
故障切换完成

Part04-生产案例与实战讲解

4.1 跨地域主备同步实战

本案例展示跨地域主备同步的实施。

# 启动主地域Extract进程
GGSCI (fgedu.net.cn)> START EXTRACT E_PRIMARY

Sending START request to MANAGER …
EXTRACT E_PRIMARY starting

Extract started successfully.

# 启动数据泵进程
GGSCI (fgedu.net.cn)> START EXTRACT P_PRIMARY

Sending START request to MANAGER …
EXTRACT P_PRIMARY starting

Extract started successfully.

# 在备地域启动Replicat进程
ssh fgedu@192.168.1.100 << 'EOF'
cd /GoldenGate/app
./ggsci << 'GGSCI'
START REPLICAT R_PRIMARY
EXIT
GGSCI
EOF

Sending START request to MANAGER …
REPLICAT R_PRIMARY starting

Replicat started successfully.

# 查看同步延迟
GGSCI (fgedu.net.cn)> LAG EXTRACT P_PRIMARY

Sending LAG request to 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

Sending LAG request to REPLICAT R_PRIMARY …

REPLICAT R_PRIMARY
Lag 00:00:07
At 2024-01-15 10:35:00

4.2 跨地域双活同步实战

展示跨地域双活同步的实施。

# 创建双向同步Extract进程
GGSCI (fgedu.net.cn)> ADD EXTRACT E_SECONDARY, INTEGRATED TRANLOG, BEGIN NOW

EXTRACT added.

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

EXTTRAIL added.

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

— 备地域Extract配置
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

EXTRACT added.

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

RMTTRAIL added.

# 编辑数据泵参数
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.*;

# 在主地域创建Replicat进程
GGSCI (fgedu.net.cn)> ADD REPLICAT R_SECONDARY, EXTTRAIL /GoldenGate/app/dirdat/se, CHECKPOINTTABLE fgedu.ogg_chkpt

REPLICAT added.

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

— 主地域Replicat配置
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 *

Sending STOP request to MANAGER …
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

Sending START request to MANAGER …
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

Program Status Group Lag at Chkpt Time Since Chkpt

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

SQL*Plus: Release 19.0.0.0.0

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
);

1 row created.

# 提交事务
SQL> COMMIT;

Commit complete.

# 验证备地域数据
ssh fgedu@192.168.1.100 << 'EOF'
sqlplus fgedu/fgedu123@fgedudb02 << 'SQL'
SELECT * FROM fgedu01.fgedu_orders WHERE order_id = 20240001;
EXIT;
SQL
EOF

ORDER_ID CUSTOMER_ID ORDER_DATE ORDER_STATUS TOTAL_AMOUNT CREATE_TIME
——– ———– ——————- ———— ———– ——————-
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

联系我们

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

微信号:itpux-com

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