opengauss教程FG006-openGauss主备集群部署全流程
目录大纲
Part01-基础概念与理论知识
1.1 主备集群概述
主备集群是openGauss最常用的高可用部署方式,通过主节点和备节点的配合,提供数据冗余和故障自动切换能力。风哥教程参考opengauss官方文档,主备集群具有以下特点:
- 主节点负责处理所有写操作
- 备节点通过流复制从主节点同步数据
- 当主节点故障时,备节点可以快速切换为主节点
- 提供高可用性,确保服务不中断
1.2 主备复制原理
openGauss主备复制基于流复制技术,其工作原理如下:
- 主节点将事务日志(WAL)发送到备节点
- 备节点接收并应用这些日志,保持与主节点数据一致
- 复制模式分为同步复制和异步复制:
- 同步复制:主节点等待备节点确认接收日志后才提交事务,确保数据一致性,但可能影响性能
- 异步复制:主节点无需等待备节点确认,性能更好,但可能存在数据延迟
1.3 主备集群优势
- 高可用性:主节点故障时,备节点可以快速接管服务
- 数据安全:数据多副本存储,提高数据可靠性
- 负载均衡:可以将读操作分发到备节点,提高系统整体性能
- 灾备能力:备节点可以部署在不同的物理位置,提供灾备能力
- 维护便利:可以在备节点上进行维护操作,不影响主节点服务
风哥提示:主备集群是企业级应用的标准部署方式,特别适合对可用性要求较高的场景。
Part02-生产环境规划与建议
2.1 集群规划
主备集群规划示例
- 主节点(Primary)
- IP地址:192.168.1.100
- 主机名:fgedu-primary.net.cn
- 角色:处理所有写操作和部分读操作
- 备节点(Standby)
- IP地址:192.168.1.101
- 主机名:fgedu-standby.net.cn
- 角色:同步主节点数据,提供故障切换能力
2.2 网络规划
网络规划需要考虑以下因素:
- 网络带宽:主备节点间建议使用万兆网络,确保数据同步的及时性
- 网络延迟:节点间网络延迟应控制在1ms以内,避免影响同步性能
- 网络冗余:实施多网卡绑定,提高网络可靠性
- 网络隔离:使用独立的管理网络进行节点间通信
2.3 存储规划
存储规划需要考虑性能和可靠性:
- 主节点:使用高性能SSD,确保写操作性能
- 备节点:使用SSD或高性能HDD,确保数据同步性能
- 存储容量:预留足够的空间,确保数据增长需求
- RAID配置:建议使用RAID 10,提供最佳性能和可靠性
风哥提示:
Part03-生产环境项目实施方案
3.1 环境准备
# 在主备节点上创建目录结构
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/app
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/fgdata
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/log
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/backup
# 在主备节点上创建用户和组
[root@fgedu-primary.net.cn ~]# groupadd dbgrp
[root@fgedu-primary.net.cn ~]# useradd -g dbgrp opengauss
[root@fgedu-primary.net.cn ~]# passwd opengauss
# 设置目录权限
[root@fgedu-primary.net.cn ~]# chown -R opengauss:dbgrp /opengauss
# 配置主机名解析
[root@fgedu-primary.net.cn ~]# cat >> /etc/hosts << EOF
192.168.1.100 fgedu-primary.net.cn fgedu-primary
192.168.1.101 fgedu-standby.net.cn fgedu-standby
EOF
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/app
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/fgdata
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/log
[root@fgedu-primary.net.cn ~]# mkdir -p /opengauss/backup
# 在主备节点上创建用户和组
[root@fgedu-primary.net.cn ~]# groupadd dbgrp
[root@fgedu-primary.net.cn ~]# useradd -g dbgrp opengauss
[root@fgedu-primary.net.cn ~]# passwd opengauss
# 设置目录权限
[root@fgedu-primary.net.cn ~]# chown -R opengauss:dbgrp /opengauss
# 配置主机名解析
[root@fgedu-primary.net.cn ~]# cat >> /etc/hosts << EOF
192.168.1.100 fgedu-primary.net.cn fgedu-primary
192.168.1.101 fgedu-standby.net.cn fgedu-standby
EOF
3.2 配置文件准备
# 创建主备集群配置文件
[root@fgedu-primary.net.cn ~]# cat > /opengauss/config/ha_config.xml << EOF
学习交流加群风哥微信: itpux-com
EOF
[root@fgedu-primary.net.cn ~]# cat > /opengauss/config/ha_config.xml << EOF
学习交流加群风哥微信: itpux-com
EOF
3.3 集群部署
# 切换到opengauss用户
[root@fgedu-primary.net.cn ~]# su – opengauss
# 执行主备集群部署
[opengauss@fgedu-primary.net.cn ~]$ cd /opengauss/app
[opengauss@fgedu-primary.net.cn app]$ ./install.sh –cluster-config=/opengauss/config/ha_config.xml
========================================
学习交流加群风哥QQ113257174
openGauss database HA cluster installation
========================================
Parsing configuration file… done
Checking environment… done
Preparing installation… done
Installing on fgedu-primary… done
Installing on fgedu-standby… done
Configuring HA cluster… done
Starting HA cluster… done
openGauss HA cluster installation completed successfully!
[root@fgedu-primary.net.cn ~]# su – opengauss
# 执行主备集群部署
[opengauss@fgedu-primary.net.cn ~]$ cd /opengauss/app
[opengauss@fgedu-primary.net.cn app]$ ./install.sh –cluster-config=/opengauss/config/ha_config.xml
========================================
学习交流加群风哥QQ113257174
openGauss database HA cluster installation
========================================
Parsing configuration file… done
Checking environment… done
Preparing installation… done
Installing on fgedu-primary… done
Installing on fgedu-standby… done
Configuring HA cluster… done
Starting HA cluster… done
openGauss HA cluster installation completed successfully!
Part04-生产案例与实战讲解
4.1 主备集群部署演示
# 查看集群状态
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Normal
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 P Primary Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 S Standby Normal
———————————————————————–
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Normal
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 P Primary Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 S Standby Normal
———————————————————————–
4.2 集群状态检查
# 检查主节点状态
[opengauss@fgedu-primary.net.cn ~]$ gs_ctl query -D /opengauss/fgdata/data1
[2024-01-01 10:00:00]: The cluster status is Normal.
[2024-01-01 10:00:00]: local_role : Primary
[2024-01-01 10:00:00]: static_connections : 1
[2024-01-01 10:00:00]: db_state : Normal
[2024-01-01 10:00:00]: detail_information : All nodes are normal.
# 检查备节点状态
[opengauss@fgedu-standby.net.cn ~]$ gs_ctl query -D /opengauss/fgdata/data2
更多视频教程www.fgedu.net.cn
[2024-01-01 10:00:05]: The cluster status is Normal.
[2024-01-01 10:00:05]: local_role : Standby
[2024-01-01 10:00:05]: static_connections : 1
[2024-01-01 10:00:05]: db_state : Normal
[2024-01-01 10:00:05]: detail_information : Standby is normal.
[opengauss@fgedu-primary.net.cn ~]$ gs_ctl query -D /opengauss/fgdata/data1
[2024-01-01 10:00:00]: The cluster status is Normal.
[2024-01-01 10:00:00]: local_role : Primary
[2024-01-01 10:00:00]: static_connections : 1
[2024-01-01 10:00:00]: db_state : Normal
[2024-01-01 10:00:00]: detail_information : All nodes are normal.
# 检查备节点状态
[opengauss@fgedu-standby.net.cn ~]$ gs_ctl query -D /opengauss/fgdata/data2
更多视频教程www.fgedu.net.cn
[2024-01-01 10:00:05]: The cluster status is Normal.
[2024-01-01 10:00:05]: local_role : Standby
[2024-01-01 10:00:05]: static_connections : 1
[2024-01-01 10:00:05]: db_state : Normal
[2024-01-01 10:00:05]: detail_information : Standby is normal.
4.3 主备切换测试
# 执行手动主备切换
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t switchover -h fgedu-standby
[2024-01-01 10:10:00]: Switchover operation started.
[2024-01-01 10:10:05]: Switching primary to standby…
[2024-01-01 10:10:10]: Switching standby to primary…
[2024-01-01 10:10:15]: Switchover operation completed successfully.
# 检查切换后的集群状态
[opengauss@fgedu-standby.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Normal
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 S Standby Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 P Primary Normal
———————————————————————–
# 测试故障自动切换
[opengauss@fgedu-standby.net.cn ~]$ gs_ctl stop -D /opengauss/fgdata/data2
[2024-01-01 10:15:00]: The server is stopping…
[2024-01-01 10:15:01]: The server was stopped.
# 检查集群状态
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Degraded
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 S Standby Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 P Primary Down
更多学习教程公众号风哥教程itpux_com
———————————————————————–
# 等待自动故障切换
[opengauss@fgedu-primary.net.cn ~]$ sleep 30
# 检查切换后的集群状态
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Normal
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 P Primary Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 S Standby Down
———————————————————————–
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t switchover -h fgedu-standby
[2024-01-01 10:10:00]: Switchover operation started.
[2024-01-01 10:10:05]: Switching primary to standby…
[2024-01-01 10:10:10]: Switching standby to primary…
[2024-01-01 10:10:15]: Switchover operation completed successfully.
# 检查切换后的集群状态
[opengauss@fgedu-standby.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Normal
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 S Standby Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 P Primary Normal
———————————————————————–
# 测试故障自动切换
[opengauss@fgedu-standby.net.cn ~]$ gs_ctl stop -D /opengauss/fgdata/data2
[2024-01-01 10:15:00]: The server is stopping…
[2024-01-01 10:15:01]: The server was stopped.
# 检查集群状态
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Degraded
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 S Standby Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 P Primary Down
更多学习教程公众号风哥教程itpux_com
———————————————————————–
# 等待自动故障切换
[opengauss@fgedu-primary.net.cn ~]$ sleep 30
# 检查切换后的集群状态
[opengauss@fgedu-primary.net.cn ~]$ gs_om -t status
———————————————————————–
cluster_state : Normal
redistributing : No
———————————————————————–
node node_ip instance state
———————————————————————–
1 fgedu-primary.net.cn 192.168.1.100 6001 /opengauss/fgdata/data1 P Primary Normal
2 fgedu-standby.net.cn 192.168.1.101 6002 /opengauss/fgdata/data2 S Standby Down
———————————————————————–
Part05-风哥经验总结与分享
5.1 主备集群最佳实践
- 网络配置:确保主备节点间网络带宽充足,延迟低
- 存储配置:使用高性能存储,确保数据同步性能
- 复制模式:根据业务需求选择同步或异步复制模式
- 监控配置:建立完善的监控体系,及时发现和处理异常
- 故障演练:定期进行故障切换演练,提高应急处理能力
5.2 常见问题与解决方案
常见主备集群问题及解决方法
from DB视频:www.itpux.com
- 问题1:主备同步延迟
- 症状:备节点数据与主节点不同步
- 解决方案:检查网络连接,优化同步参数,确保备节点性能充足
- 问题2:切换失败
- 症状:主节点故障后,备节点无法切换为主节点
- 解决方案:检查备节点状态,确保备节点数据同步正常,尝试手动切换
- 问题3:备节点无法启动
- 症状:备节点启动失败
- 解决方案:检查备节点日志,确认故障原因,修复后重新启动
- 问题4:网络中断导致同步失败
- 症状:网络中断后,主备同步失败
- 解决方案:恢复网络连接后,重新建立主备关系
5.3 运维管理要点
- 定期检查:定期检查主备同步状态,确保数据一致性
- 备份策略:配置定期备份,确保数据安全
- 版本管理:关注官方发布的版本更新,及时升级
- 文档记录:详细记录集群配置和维护操作,便于后续管理
- 应急响应:建立完善的应急响应机制,确保快速处理故障
风哥提示:主备集群是企业级应用的重要部署方式,通过合理的规划和维护,可以提供高可用性和数据安全性,确保业务系统的稳定运行。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
