GoldenGate教程FG079-OGG与Oracle RAC集群集成实战
本文详细介绍OGG与Oracle RAC集群的集成方法,包括RAC集群架构、OGG配置、故障转移、负载均衡等内容。风哥教程参考GoldenGate官方文档GoldenGate RAC集成指南、Oracle RAC管理手册等内容,帮助读者掌握OGG与RAC集成的实战技巧。
目录大纲
Part01-基础概念与理论知识
1.1 Oracle RAC集群概述
1.2 OGG与RAC集成原理
1.3 RAC故障转移机制
Part02-生产环境规划与建议
2.1 RAC集群架构规划
2.2 OGG部署规划
2.3 故障转移规划
Part03-生产环境项目实施方案
3.1 RAC集群配置
3.2 OGG与RAC集成配置
3.3 故障转移配置
Part04-生产案例与实战讲解
4.1 OGG与RAC集成实战
4.2 RAC故障转移实战
4.3 RAC负载均衡实战
Part05-风哥经验总结与分享
5.1 OGG与RAC集成最佳实践
5.2 RAC集成经验总结
5.3 RAC监控与运维
Part01-基础概念与理论知识
1.1 Oracle RAC集群概述
Oracle RAC(Real Application Clusters)是Oracle的集群技术,允许多个实例同时访问同一数据库,学习交流加群风哥微信: itpux-com。
RAC特点:
1. 高可用性:节点故障自动切换
2. 负载均衡:请求在节点间均衡分布
3. 扩展性:动态添加节点
4. 共享存储:共享存储架构
5. 并发访问:多实例并发访问
crsctl status cluster -t
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
——————————————————————————–
Cluster Configuration
——————————————————————————–
Cluster Status: ONLINE
Node Name Status
——————————————————————————–
fgedu01 ONLINE
fgedu02 ONLINE
1.2 OGG与RAC集成原理
OGG与RAC集成通过Extract进程连接到RAC集群,实现数据捕获和同步。
集成原理:
1. 连接管理:连接到RAC集群
2. 故障转移:节点故障自动切换
3. 负载均衡:负载均衡配置
4. 数据捕获:捕获RAC数据
5. 同步处理:处理同步任务
sqlplus fgedu/fgedu123@fgedudb-scan:1521/fgedudb
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – 64bit Production
With the Real Application Clusters option
SQL> SELECT * FROM v$instance;
————— ————— ————— ———— ————
1 fgedudb1 fgedu01 OPEN 19.0.0.0.0
1.3 RAC故障转移机制
RAC故障转移机制确保节点故障时服务不中断。
故障转移:
1. VIP故障转移:VIP自动切换
2. 服务故障转移:服务自动切换
3. 实例故障转移:实例自动重启
4. 连接故障转移:连接自动重连
5. 事务故障转移:事务自动恢复
Part02-生产环境规划与建议
2.1 RAC集群架构规划
根据业务需求,设计合理的RAC集群架构。
架构规划:
1. 节点数量:规划节点数量
2. 网络配置:配置网络架构
3. 存储配置:配置存储架构
4. 资源配置:配置资源参数
5. 高可用配置:配置高可用参数
olsnodes -s
fgedu02 Active
2.2 OGG部署规划
规划OGG在RAC环境中的部署方案。
部署规划:
1. 部署模式:集中式或分布式
2. 节点选择:选择部署节点
3. 连接方式:连接RAC的方式
4. 故障转移:故障转移配置
5. 监控方案:监控方案配置
2.3 故障转移规划
规划OGG在RAC环境中的故障转移方案。
故障转移规划:
1. 自动故障转移:配置自动故障转移
2. 手动故障转移:配置手动故障转移
3. 验证机制:验证故障转移
4. 回切机制:配置回切机制
5. 监控告警:监控故障转移
Part03-生产环境项目实施方案
3.1 RAC集群配置
配置RAC集群以支持OGG集成。
srvctl status service -d fgedudb
srvctl add service -d fgedudb -s ogg_service -r fgedudb1,fgedudb2 -a fgedudb2,fgedudb1 -P BASIC
srvctl start service -d fgedudb -s ogg_service
3.2 OGG与RAC集成配置
配置OGG与RAC的集成。
GGSCI (fgedu.net.cn)> ADD EXTRACT E_RAC, INTEGRATED TRANLOG, BEGIN NOW
GGSCI (fgedu.net.cn)> ADD EXTTRAIL /GoldenGate/app/dirdat/ra, EXTRACT E_RAC
GGSCI (fgedu.net.cn)> EDIT PARAMS E_RAC
EXTRACT E_RAC
USERID fgedu, PASSWORD fgedu123@fgedudb-scan:1521/fgedudb
EXTTRAIL /GoldenGate/app/dirdat/ra
— RAC连接配置
TRANLOGOPTIONS ASMUSER sys@+ASM, ASMPASSWORD asm_password
TRANLOGOPTIONS DBLOGREADER
— 表映射配置
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
TABLE fgedu01.fgedu_customers;
GGSCI (fgedu.net.cn)> ADD REPLICAT R_RAC, EXTTRAIL /GoldenGate/app/dirdat/ra
GGSCI (fgedu.net.cn)> EDIT PARAMS R_RAC
REPLICAT R_RAC
USERID fgedu, PASSWORD fgedu123@fgedudb-scan:1521/fgedudb
ASSUMETARGETDEFS
— 表映射配置
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.3 故障转移配置
配置OGG在RAC环境中的故障转移。
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
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
— RAC故障转移配置
ACCESSRULE, PROG *, IPADDR 192.168.1.*, ALLOW
ACCESSRULE, PROG *, IPADDR *, DENY
vi /GoldenGate/app/scripts/rac_failover.sh
# rac_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/rac_failover.log
failover_to_node() {
local node=$1
echo “========== 故障转移到节点 $node: $(date) ==========” >> $LOG_FILE
# 停止当前节点OGG进程
echo “停止当前节点OGG进程” >> $LOG_FILE
$OGG_HOME/ggsci << EOF >> $LOG_FILE 2>&1
STOP *
EXIT
EOF
# 启动目标节点OGG进程
echo “启动节点 $node OGG进程” >> $LOG_FILE
ssh $node “$OGG_HOME/ggsci << 'EOF' START * EXIT EOF" >> $LOG_FILE 2>&1
echo “故障转移完成” >> $LOG_FILE
}
# 检测节点状态
check_node_status() {
local node=$1
local status=$(ssh $node “crsctl status resource ora.cssd” | grep STATE | awk ‘{print $2}’)
echo “节点 $node 状态: $status” >> $LOG_FILE
echo $status
}
echo “========== RAC故障转移: $(date) ==========” >> $LOG_FILE
# 检查节点状态
status_node1=$(check_node_status fgedu01)
status_node2=$(check_node_status fgedu02)
# 故障转移逻辑
if [ “$status_node1” != “ONLINE” ]; then
failover_to_node fgedu02
elif [ “$status_node2” != “ONLINE” ]; then
failover_to_node fgedu01
else
echo “所有节点正常,无需故障转移” >> $LOG_FILE
fi
Part04-生产案例与实战讲解
4.1 OGG与RAC集成实战
本案例展示OGG与RAC的集成。
GGSCI (fgedu.net.cn)> START EXTRACT E_RAC
EXTRACT E_RAC starting
Extract started successfully.
GGSCI (fgedu.net.cn)> START REPLICAT R_RAC
REPLICAT R_RAC starting
Replicat started successfully.
sqlplus fgedu/fgedu123@fgedudb-scan:1521/fgedudb
Connected.
SQL> INSERT INTO fgedu01.fgedu_orders (
order_id, customer_id, order_date,
order_status, total_amount, create_time, update_time
) VALUES (
20240001, 500123, SYSDATE,
‘PENDING’, 1500.00, SYSDATE, SYSDATE
);
SQL> COMMIT;
SQL> SELECT * FROM fgedu01.fgedu_orders WHERE order_id = 20240001;
———- ———– ——————- ———— ———— ——————- ——————-
20240001 500123 2024-01-15 10:00:00 PENDING 1500 2024-01-15 10:00:00 2024-01-15 10:00:00
4.2 RAC故障转移实战
展示RAC故障转移的实现。
ssh fgedu01 “crsctl stop crs”
/GoldenGate/app/scripts/rac_failover.sh
ssh fgedu02 “$OGG_HOME/ggsci << 'EOF' INFO ALL EXIT EOF"
Version 23.0.0.0.0
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING E_RAC 00:00:02 00:00:00
REPLICAT RUNNING R_RAC 00:00:03 00:00:01
4.3 RAC负载均衡实战
展示RAC负载均衡的实现。
srvctl status service -d fgedudb
Service ogg_service is running on instance(s) fgedudb1, fgedudb2
sqlplus fgedu/fgedu123@fgedudb-scan:1521/fgedudb
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – 64bit Production
With the Real Application Clusters option
SQL> SELECT instance_name, host_name FROM v$instance;
————— —————
fgedudb2 fgedu02
Part05-风哥经验总结与分享
5.1 OGG与RAC集成最佳实践
基于实际项目经验,总结OGG与RAC集成的最佳实践。
最佳实践:
1. 连接配置:使用SCAN地址连接
2. 故障转移:配置自动故障转移
3. 负载均衡:配置负载均衡
4. 监控告警:完善监控告警
5. 测试验证:测试故障转移
5.2 RAC集成经验总结
总结OGG与RAC集成的经验和技巧。
集成经验:
1. 网络配置:配置网络连接
2. 服务配置:配置专用服务
3. 故障转移:配置故障转移
4. 监控告警:完善监控告警
5. 文档完善:完善文档记录
5.3 RAC监控与运维
提供OGG与RAC集成的监控与运维工具。
vi /GoldenGate/app/scripts/rac_monitor.sh
# rac_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/rac_monitor.log
monitor_rac_nodes() {
echo “========== RAC节点监控: $(date) ==========” >> $LOG_FILE
# 查看节点状态
echo “节点状态:” >> $LOG_FILE
olsnodes -s >> $LOG_FILE
# 查看服务状态
echo “服务状态:” >> $LOG_FILE
srvctl status service -d fgedudb >> $LOG_FILE
}
monitor_ogg_processes() {
echo “========== OGG进程监控: $(date) ==========” >> $LOG_FILE
# 查看OGG进程状态
echo “OGG进程状态:” >> $LOG_FILE
$OGG_HOME/ggsci << EOF >> $LOG_FILE 2>&1
INFO ALL
EXIT
EOF
}
# 执行监控
monitor_rac_nodes
monitor_ogg_processes
echo “RAC监控完成”
chmod +x /GoldenGate/app/scripts/rac_monitor.sh
/GoldenGate/app/scripts/rac_monitor.sh
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
