编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

罕见的PostgreSQL数据库主从物理复制断开案例

wxchong 2025-03-24 00:47:33 开源技术 17 ℃ 0 评论

我干数据库DBA近9年,深感数据库安全、稳定、高效运行的重要性和迫切性。数据库类似财务的账单,一旦出现损坏或者删除,那相应的财务账单都丢失了,可以说公司是否还能继续经营下去都不好说。
最近遇到PostgreSQL数据库主从物理复制断开的案例,具体报错如下:

2025-xxxxx CST [26] LOG: incorrect resource manager data checksum in record at 2B1/AFE8A470

2025-xxxxx CST [591] FATAL: terminating walreceiver process due to administrator command

从库的walreceiver进程被主动terminated掉了,经排查网上的案例和源码发现是CRC-32检验出错,写入的数据有问题,读wal日志时遇到校验异常的情况,这种情况相对来说还是比较罕见的,玩PG这么多年很少遇到这种情况,也有可能和我们的PostgreSQL集群使用的docker方式搭建有关系,而且还是单机多集群部署。

CRC校验相关源码如下:

if (!EQ_CRC32C(record->xl_crc, crc))

{

report_invalid_record(state,

"incorrect resource manager data checksum in record at %X/%X",

(uint32) (recptr >> 32), (uint32) recptr);

return false;

遇到这种情况可以拷贝异常的wal文件到备库,或者重拉一下备库去解决。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表