当前位置: 首页 > news >正文

HAC集群切换后断档问题处理

文章目录

  • 环境
  • 症状
  • 问题原因
  • 解决方案

环境

系统平台:N/A
版本:4.5.8,4.5.7

症状

hghac集群的备库,因为服务器重启或其他某些原因导致hghac服务停止。在服务恢复后,发现备库无法自动重新同步。

集群状态如下:

[root@dyoa ~]# hghactl list + Cluster: see-cluster (71457020xxxxxxxxxxxxxxxx) ----+-----------+-----------------+ | Member | Host | Role | State | TL | Lag in MB | Pending restart | +--------+-------------------+---------+---------+----+-----------+-----------------+ | hac1 | 192.168.10.1:5866 | Replica | running | | 3173 | * | | hac2 | 192.168.10.2:5866 | Leader | running | 84 | | * | +--------+-------------------+---------+---------+----+-----------+-----------------+

备库上的相关日志:

2025-04-21 18:33:36.559 CST,,,16751,,68061f00.416f,1,,2025-04-21 18:33:36 CST,,0,日志,00000,"在时间点: 5AA/BB000000 (时间安排84)启动日志的流操作",,,,,,,,,"" 2025-04-21 18:33:36.559 CST,,,16751,,68061f00.416f,2,,2025-04-21 18:33:36 CST,,0,致命错误,XX000,"无法从WAL流中获得数据: 错误: 所要求的WAL段00000054000005AA000000BB已经被删除",,,,,,,,,""

问题原因

备库hac服务停止后,集群会自动从主库删除该备库节点对应的复制槽。此时假如备库停止过长时间,会导致主库清理备库同步所需的WAL日志

解决方案

一 重做备库

1.1 停止备库的hac服务

systemctl stop hghac

1.2 移除有问题备库的PGDATA

找到hghac.yml中的data_dir路径配置,此处为/data/highgo/data

cd /data/highgo mv data data_bak

注意:假如数据目录采用软链接方式,则务必保证hghac.yml中的data_dir路径可用且为空,权限为700。

1.3 启动hac服务,重新同步

systemctl start hghac

等待备节点为running或Streaming,且Lag in MB为0时,表示同步成功。

二 考虑调整wal保留参数

配置wal_keep_segments和max_wal_size,保留备库所需要的WAL文件。

流复制或集群环境​​下wal_keep_segments​​如何确定?

根据备用服务器的复制延迟,与PGDATA目录所在硬盘的容量综合设置。

例如,若需要至少能保证延迟 1 小时不清理WAL,可以参考最近服务器业务高峰时期,统计每小时生成的 WAL 段数。

假设每小时产生1000个WAL日志,可以按照如下配置:

1. 配置 wal_keep_segments=1000 2. 配置 max_wal_size =1000*16MB=16GB 3. min_wal_size: 通常保持max_wal_size*25%,或者一半即可。

所有数据库节点执行命令如下:

altersystemsetwal_keep_segments=1000;altersystemsetmax_wal_size='16GB';altersystemsetmin_wal_size='4GB';selectpg_reload_conf();--reload conf 使参数生效
http://www.jsqmd.com/news/490798/

相关文章:

  • GPT-5.4 深夜上线!百万上下文+原生操作电脑,OpenClaw 天选模型来了!【附GPT升级教程】
  • Matplotlib绘制拆线图自定义曲线颜色显示
  • JAVA今日面经(一)
  • 发电机组并网技术研究
  • 工业物联网百科全书
  • 立创开源广场自动签到脚本V1.1
  • KMP算法之 next 数组的计算
  • 净水器行业的下一步:从卖设备到卖服务
  • 「OpenClaw 实战全攻略」:从打造 Second Brain 到服务器自愈,20+ 真实落地场景解析
  • 欧洲十家运营商联手对抗星链:一场关于天空的“地缘保卫战”
  • 第六讲:OpenClaw+Deepseek+飞书低成本安装龙虾指南(最新)
  • SceneV:基于Vue3与ThingsBoard的高性能低代码组态可视化解决方案
  • 底部填充胶 (Underfill) 怎么选?AI 算力芯片与 CoWoS 先进封装导热用胶白皮书—37W/m·K 高导热与 13ppm 极低 CTE :峻茂芯片级应力管理指南
  • 高级java每日一道面试题-2025年8月27日-基础篇[LangChain4j]-如何审计 LLM 的输入输出?
  • 2025_NIPS_Transformer brain encoders explain human high-level visual responses
  • Select、Poll、Epoll详解:核心区别与实战用法
  • coding plan vs token
  • 高级java每日一道面试题-2025年8月28日-业务篇[LangChain4j]-如何使用 LangChain4j 实现智能投研助手?需要处理哪些金融数据源?
  • LeetCode Hot100(66/100)——118. 杨辉三角
  • Qt进程间通信
  • LeetCode Hot100(68/100)——198. 打家劫舍
  • 【LLM进阶-Agent】13.function call vs mcp vs skills
  • 2025_NIPS_EgoExoBench: A Benchmark for First- and Third-person View Video Understanding in MLLMs
  • 告别绘图软件!Paperxie AI 科研绘图:10 次免费额度,让理工科论文可视化一步到位
  • Tower I3C Host Adapter 使用范例 (20)
  • 【C++】左值引用、右值引用
  • CS二开之睡眠混淆(五)BeaconGate,UDRL,Sleepmask组合拳
  • AI新范式 02|拆解世界模型:它是如何理解物理规律的?
  • WebRTC QoS方法之NetEQ在流量卡弱网应用下失效
  • Java基础-1