代码改变世界

【磐维数据库】gs_probackup备份失败问题

2025-06-03 17:00  狂澜与玉昆0950  阅读(80)  评论(0)    收藏  举报

中国移动磐维数据是基于openGauss定制开发的中国移动自用版OLTP数据库。自去2023年年12月发布以来,受到广泛关注,目前已成功上线百余套。 在产品落地的过程中,我们积累了大量的迁移、适配,以及问题分析诊断的经验。 北京海量数据技术股份有限公司,作为移动磐维集中式数据库外协厂商,对集中式磐维数据库的运维、管理、开发等均有深入了解。在江西移动现场运维整理汇总经验。

问题概述1

在使用磐维数据库的中,使用gs_probackup进行,使用命令如下:

gs_probackup backup -B /backup/probackup --instance=test -b PTRACK -d test_db -p 17700

在进行全量备份过程中抛出异常:pg_stop_backup doesn't answer in 300 seconds, cancel it,具体报错信息如下:

 HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be canceled safely, but the database backup will not be usable without all the WAL segments.
 CONTEXT:  referenced column: lsn
 [2024-05-20 16:35:07]: keepalive message is received
 [2024-05-20 16:35:07]: keepalive message is received
 ...                                              
 [2024-05-20 16:36:02]: keepalive message is received
 WARNING: Cancel request sent
 ERROR: pg_stop_backup doesn't answer in 300 seconds, cancel it
 WARNING: Backup S5P8ZP is running, setting its status to ERROR

解决方案

1、首先检查归档是否开启show archive_mode;

postgres=# show archive_mode;
 archive_mode 
--------------
 on
(1 行记录)

2、归档路径是否正确show archive_dest;

postgres=# show archive_dest;
 archive_dest 
--------------
 /archive
(1 行记录)

3、检查wal_sender_timeout参数配置是否配置正确

postgres=# show wal_sender_timeout ;
 wal_sender_timeout 
--------------------
 10s
(1 行记录)

4、检查archive_command路径是否配置正确

5、确认是否因为备份执行命令未放置后台执行导致超时crontab -e

以上情况都检查完成,确认无误后,执行全量备份仍然报错。

根据提示archive_command去寻找目录,最后发现/archive目录的操作权限有读权限没有写入权限,将/archive目录权限通过chmod 755 /archive设置后备份成功。

问题概述2

  • 数据库:PanWeiDB 2.0 集中式
  • 备份类型:gs_probackup全量备份

报错信息:

WARNING: Cancel request sent
ERROR: pg_stop_backup doesn't answer in 300 seconds, cancel it

排查步骤:

1.登录主库确认归档已开启:

PanWeiDB=# show archive_mode;
archive_mode
--------------
on
(1 row)

如未开启:

PanWeiDB=# alter system set archive_mode=on;
ALTER SYSTEM SET

2.确认配置归档路径

PanWeiDB=# show archive_dest;
 archive_dest 
--------------
 /archive
(1 row)

如为空,设置归档路径:

PanWeiDB=# alter system set archive_dest = '/archive' ;
ALTER SYSTEM SET
PanWeiDB=# show archive_dest;
    archive_dest    
--------------------
 /archive 
(1 row)

此处发现:/archive为绝对路径,操作中误以为是当前目录下的/archive造成备份时无法讲数据写入到对应目录造成响应超时。

如没有/archive则创建该目录并指定使用者,与归档路径保持一致。

chown -R omm:/archive

3.确认wal_sender_timeout该参数的值为10s:

PanWeiDB=# show wal_sender_timeout ;
 wal_sender_timeout 
--------------------
 10s
(1 row)
如不是,则退出数据库进行设置:
gs_guc reload -I all -N all -c "wal_sender_timeout=10s"