李成笔记网

专注域名、站长SEO知识分享与实战技巧

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

我干数据库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文件到备库,或者重拉一下备库去解决。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言