pg故障修复记录

Dify不停机迁移实战:数据库损坏,怎么办? 本文记录了PostgreSQL数据库在迁移过程中崩溃恢复的全过程。在数据迁移后,数据库因WAL日志损坏无法启动,通过pg_resetwal工具初步修复后,又发现TOAST数据损坏问题。最终采取从旧服务器重新备份完整数据、安全传输并执行完整恢复的方案。文章总结了数据库迁移的最佳实践,包括迁移前准备、传输优化、恢复策略和监控验证等关键环节,强调了理解架构、预防为主和系统化排查的重要性。这次实战不仅成功恢复了数据库,更形成了一套完整的故障处理方案,为类似迁移工作提供了宝贵经验。 阅读详情

一个线上实例,用户数据大概300g 400g的样子,由于用户自己修改了最大连接数,超过了我们设置的合理范围,导致自动恢复失败,现在需要我们手动搭建起来新的主从关系。
但是在搭建的过程中,出现了两个比较麻烦的问题。

第一个问题:主节点不能正确恢复数据
我们把pgbackrest.conf配置文件中的oss路径改成源pg实例的路径,通过pgbackrest restore进行按时间点恢复。这种恢复方法需要先找到距离本次恢复时间点最近的一次全量备份,然后再把之后到该时间点(包括该时间点)的所有wal日志下载到本地,然后启动pg服务就可以了。
然而由于数据量比较大,恢复需要一定时间,在恢复的过程中,源实例做了一次自动全量备份(每天晚上自动备份),导致连续的wal日志出现了如下图所示的.backup的备份文件。
在这里插入图片描述
按照我的理解,这个.backup文件应该没有什么影响,但是本次全量备份做了大概有40分钟。目标实例在下载wal日志的时候中断在此了。。。
具体原因也不知道为什么,准备在其他的非生产实例上测试一下这个.backup文件是否会影响wal日志的下载。
这个问题相对好解决,我们通过pg_waldump定位到了需要的wal日志范围,pgbackrest archive-get命令把需要的wal日志都下载到本地,然后启动pg服务就可以了。

第二个问题:主从不能正常搭建
我们使用的主从搭建的工具是repmgr,这个工具大家应该都比较熟悉,一般就是用repmgr或者patroni来进行pg主从的搭建。先注册主节点,然后从节点clone,再register就可以了,按理说没什么难度。但是从节点注册之后,就比主节点多了一条timeline。
在这里插入图片描述
对了,刚开始的时候还注册不成功,我在从节点的data目录下手动创建了standby.signal,重启pg服务之后可以注册了。但是主从关系还是不对。
查了很多资料,卡了2天,但是没有解决。。。
直接说最后的解决方法吧。我把主节点的pgbackrest配置文件中的oss修改成当前实例,重建了stanza,修改了archive-command,然后又执行了一遍clone和register就成功了0.0.
感觉是和这个archive-command有关系,之前由于恢复把这个命令改成了/bin/true,忘记改回来了。后面改成pgbackrest archive-push,就成功了。其他的修改感觉用处不大。。

Ceph PG inconsistent修复实战:从报错到恢复的完整记录(附避坑指南) 本文详细记录了Ceph PG不一致(inconsistent)问题的修复实战过程,从诊断到恢复的完整指南。涵盖了标准修复命令、深入诊断步骤、高级修复技术以及避坑指南,帮助管理员有效解决scrub errors和数据不一致问题,确保Ceph集群的稳定运行。 阅读详情

相关推荐

Ceph PG inconsistent故障排查与修复:从scrub原理到repair实战

分布式存储系统中,数据以多副本形式分布在不同的OSD上,正常状态下副本内容完全一致。但磁盘坏道、OSD异常重启或快照元数据异常等都可能引发副本间数据分歧,此时PG状态变为inconsistent,并通过scrub与deep-scrub机制发现并上报。理解scrub的原理与修复流程,是保障存储集群健康运行的关键技术价值。在实际运维中,当ceph -s出现scrub errors告警,通常需要结合ceph health detail、pg query等诊断工具定位故障PG,并谨慎使用ceph pg repair

weixin_33178839的博客 316

centos7.4配置pgbackrest

1.配置集群Stanza /etc/pgbackrest/pgbackrest.conf [demo] pg1-path=/cddb5.0/data2/ [global] repo1-path=/var/lib/pgbackrest repo1-retention-full=2 说明:/cddb5.0/data2/为postgresql的数据目录 2.创建资料库 mkdir -p /var/lib...

weixin_41561946的博客 610

在企业ceph运维中问题处理解决方案---持续更新

标注:此问题处理解决文档属于持续更新类,每周一更新,希望大家能够理解和支持(*^_^*) 目录 1、001ceph集群扩容中出现GenericError: Failed to create 1 OSDs解决方案 2、002ceph集群中pg状态出现inconsistent解决方案 (1)出现pg inconsitent的原因(ceph err) (2)解决方案 3、003 ceph集群pg计算以及调整方案 (1)背景 (2)pg计算 (3)调整方案 4、004ceph集群运维收到o..

辉辉的博客 1988

Postgresql部署及备份工具pgbackrest部署使用

Postgresql部署及备份工具pgbackrest部署使用

strivelcy的博客 2973

跟着团子学SAP CO:熟练使用结果分析码实现各个场景下收入成本的匹配(一) KKA2/CJ88

PS模块中对财务顾问最难的点在于项目结算,特别是销售型的项目结算。针对客户型项目结算我列举了以下常见的收入成本匹配的一些场景: (1)在项目执行过程中会多次开票,但由于各期成本浮动很大(如前期可能只涉及一些人工、中期全是比较金额较大的材料费),所以希望开票的时候能通过合理的一些指标进行主营业务成本与主营业务收入的匹配。 (2)项目过程中会多次开票,开票确认主营业务收入时,直接将累计发生的实际成本结转为主营业务成本。 (3)项目过程中虽多次开票,但不确认收入,所有发生的实际成本月末计算为在制品,最后项目一次性

Lucas1211的博客 9533

Evolution of Heuristics: Towards Efficient Automatic Algorithm Design Using Large Language Model

启发式算法广泛用于处理复杂的搜索和优化问题。然而,启发式算法的手动设计通常非常耗费人力,需要丰富的工作经验和知识。本文提出了启发式算法的进化 (EoH),这是一种新颖的进化范式,它利用大型语言模型 (LLM) 和进化计算 (EC) 方法进行自动启发式设计 (AHD)。EoH 代表自然语言中的启发式概念,称为思想。然后由 LLM 将它们转换为可执行代码。进化搜索框架中思想和代码的演变使其在生成高性能启发式算法方面非常有效和高效。

weixin_43961909的博客 2160

Ceph PG Peering数据修复

在PG的修复过程中,如果既有需要Recovery过程的OSD,又有需要Backfill过程的OSD,那么处理过程需要先进行Recovery过程的修复,再完成Backfill过程的修复。但是pg->have_unfound()不为0,还有unfound对象(即缺失的对象,目前不知道在哪个OSD上能找到完整的对象),调用函数discover_all_missing()在might_have_unfound队列中的OSD上继续查找该对象,查找的方法就是给相关的OSD发送获取OSD的pg_log的消息。

大隐隐于野 1561

RK3568 解决MIPI屏幕开机只显示uboot logo的问题

之前写过一篇文章介绍了RK3568驱动MIPI屏幕的方法,这次产品迭代,硬件改版,选型的新的屏幕了。所以再次开启调试屏幕的过程。本以为会和上次一样会轻车熟路,事情总是事与愿违,同样的路,遇到新的坑。

fhqlongteng的博客 5425

ceph存储 PG的数据恢复过程

 PG 的数据恢复过程    集群中的设备异常(异常OSD的添加删除操作),会导致PG的各个副本间出现数据的不一致现象,这时就需要进行数据的恢复,让所有的副本都达到一致的状态。想知道如何来进行数据的恢复之前,先要了解OSD故障的种类。   一、OSD的故障和处理办法:   1. OSD的故障种类:       故障A:一个正常的OSD 因为所在的设备发生异常,导致

skdkjxy的专栏 1万+

如何设计一个低代码平台

近些年来,低代码发展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,如果用户想从零开始设计一个低代码平台,该如何做呢?

Jarod_Chou的博客 8256

单片机控制双向可控硅的5种实用触发电路设计(附完整电路图)

本文深入解析了单片机控制双向可控硅的5种实用触发电路设计,涵盖从基础隔离到复杂负载驱动的实战方案。重点探讨了光电耦合器选型、过零检测同步、RC吸收电路精密计算以及应对感性负载和高噪声环境的加固策略,并提供了完整的电路图与调试避坑指南,旨在帮助开发者实现安全可靠的交流负载控制。

joy55的博客 2199

PostgreSQL pgBackRest 是最好的PG备份工具 ? (深入一些疑难问题 2)

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群,群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共1540人左右 1 + 2 + 3 + 4) ,新人会进4群(150),另欢迎 OpenGauss...

sql server的专栏 529

Tesseract OCR 字库训练教程:提高识别率进阶版

通过 Tesseract 字库训练,你可以提高 OCR 对特定文本或字体的识别能力。训练过程包括准备训练数据、生成标签文件、运行训练工具,以及将训练结果集成到实际项目中。虽然训练过程需要一些时间和精力,但对于需要高精度文本识别的场景来说,字库训练是非常有效的提升识别率的方法。

小蜗牛的珍贵百宝箱 1865

PG数据库导致断电/重启无法正常启动

在发生ip重复了后修改了我方使用的k8s集群的pod网段,并对所有pod进行了重启,在执行重启操作后我方部署pg数据库无法正常提供服务,经过查询容器日志发现了上述问题。进入容器后发现/var/run/postgresql/.s.PGSQL.5432文件不存在,然后进入一个正常的pg数据库容器,发现该文件是存在的,因此确认pg数据库的进程不正常。然后通过执行top命令,发现pg数据库的进程并未启动,因此进一步确认pg数据库未正常启动。② 查看pg数据库进程是否存在。->数据库的启动时间,需要进行转换。

xdpcxq的专栏 1457

避坑指南:PyTorch ConvLSTM参数配置的那些坑(hidden_dim/kernel_size/num_layers详解)

本文深度解析PyTorch ConvLSTM中hidden_dim、kernel_size和num_layers三大核心参数的配置技巧,提供实战指南和性能优化建议。通过实验数据揭示参数组合的内在规律,帮助开发者避免常见配置陷阱,提升时空序列建模效果。特别针对视频预测、气象预报等应用场景,给出黄金参数组合方案和调试技巧。

vv45678的博客 702

RH850系列芯片深度剖析 1.5-链接(ld)文件解析

基础编译过程分为四个阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。执行这四个阶段的程序(预处理器、编译器、汇编器、和链接器)一起构成了编译系统。CONSTANTS接下来的内存空间定义部分会使用这些常量来定义内存空间的范围,理论上来说不定义常量也没有影响,直接用魔鬼数字代替,定义常量的主要目的就是方便理解以及方便修改;从示例中可以看出,常量的值可以为16进制或者10十进制,而且10进制支持数量级单位(k级,M级);

本博客专注于嵌入式软件领域技术分享。 1427

ceph scrub 错误记录

ceph scrub

Terry Tsang 1165

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

记一次ceph集群的严重故障

问题:集群状态,坏了一个盘,pg状态好像有点问题[root@ceph-1 ~]# ceph -s cluster 72f44b06-b8d3-44cc-bb8b-2048f5b4acfe health HEALTH_WARN 64 pgs degraded 64 pgs stuck degraded 64 pgs st...

weixin_30916125的博客 1758

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

记录一次ceph recovery经历

一次ceph recovery经历 背景 这是一个測试环境。 该环境中是cephfs 一共12个节点, 2个client、2个mds、8个osd mds: 2颗CPU,每一个4核。一共是8核。 128G内存, 单独的两个节点,仅仅作为mds cpu型号: Intel(R) ...

aoe41606的博客 680

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

PostgreSQL 中的一些监控及问题发现脚本

作为可以替换ORACLE 重要的一员,PG 是很值得学习。 今天总结一下 PostgreSQL, 如何进行故障的排错,小道消息是,昨天上午还是小道消息的,估计今天已经消息人尽皆知了,中国...

sql server的专栏 407

PostgreSQL通过pg_basebackup恢复到指定时间点失败修复方式_PANIC could not locate a valid checkpoint record

PostgreSQL数据库出现严重错误,无法找到有效检查点记录导致系统崩溃。主要解决方案包括:1)使用pg_resetwal工具强制修复控制文件和WAL日志;2)手动清理并重建WAL目录;3)从备份恢复数据。操作前必须备份数据目录,修复可能导致最近数据丢失。建议优先尝试pg_resetwal方案,并检查磁盘健康状况。问题可能由WAL日志损坏或磁盘故障引起,需谨慎处理避免数据永久丢失。

liumangtuzi888的博客 751

玩转(坏)服务器【一】

很开心这回又能拿到一个服务器的ip和密码了,让我好好玩玩。我本人肯定是没有这个条件等,比较麻烦还要费钱。之前在维护一个项目时,经常对测试环境需要更新jar包,只是进行了这个操作。现在是玩另外一个项目时,发现做向量化pgsql少了个拓展vector,于是向寻理说明帮忙下载。然后捏,我就拿到一个ip和密码自己下载啦!由于我还没有下载过东西在服务器上,秉持着小心下载的原则,迟迟还没开始。龙哥经过喊住了他,很好的实干派,比我还实干,在他面前我真说不上实干哈哈哈。

m0_72696598的博客 1083

分析 PG 故障并修复

目标 解决下面故障 # ceph -s cluster: id: 7e720238-7ada-4922-ba2e-xxxxxx4e4 health: HEALTH_WARN Degraded data redundancy: 85 pgs unclean, 85 pgs degraded, 85 pgs undersized services: mon: 3 daemons, quorum ns-storage-020100,ns-sto

Terry Tsang 3462

PostgreSQL 12/14/16 启动故障:pg_resetwal 修复 WAL 损坏的 3 个关键步骤与风险

本文详细介绍了PostgreSQL 12/14/16因WAL损坏导致启动故障时,如何使用pg_resetwal工具进行修复的3个关键步骤与风险。从故障诊断、pg_resetwal操作流程到修复后验证,帮助DBA在紧急情况下安全恢复数据库,同时强调数据备份与长期预防措施的重要性。

weixin_29304985的博客 325

【PGCCC】PG持久化机制与故障恢复——让你的数据库“永不崩塌”!

WAL是PostgreSQL的核心持久化机制,其原理非常简单:先写日志,再修改数据。这意味着当你进行任何数据库操作时,PostgreSQL不会立即修改数据文件,而是先将变更记录到一个日志文件中,之后再慢慢应用这些变更到实际的数据文件中。

PGCCC的博客 1556
上一篇: mysql日志文件
下一篇: pg wal日志名称格式及其含义
code_feien
博客等级 码龄7年 71粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值