You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Barman恢复时无法识别target-time参数格式问题求助

问题

尝试使用Barman恢复备份时,使用--target-time参数始终报错无法解析时间格式,执行命令及错误信息如下:

barman@BKUP-XXX:~$ barman recover --target-time '2023–04–22 00:00:00.000000+02:00' --remote-ssh-command "ssh postgres@pgdb-XXX" PGDB-XXX 20230416T214125 /var/lib/postgresql/13/main/
Starting remote restore for server PGDB-XXX using backup 20230416T214125
Destination directory: /var/lib/postgresql/13/main/
Remote command: ssh postgres@pgdb-XXX
ERROR: Unable to parse the target time parameter '2023–04–22 00:00:00.000000+02:00': Unknown string format: 2023–04–22 00:00:00.000000+02:00
barman@BKUP-XXX:~$

无论是否包含毫秒或时区,调整后均报错,怀疑是否为Python依赖问题,但服务器仅用于Barman部署。

解决方案

  1. 替换中文破折号为英文短破折号
    你的时间字符串中使用了中文长破折号(–),而Barman要求使用英文短破折号(-)。把2023–04–22替换为2023-04-22即可解决核心格式解析问题。

  2. 使用Barman兼容的时间格式
    Barman基于Python的datetime模块解析时间,推荐使用以下标准格式:

    • ISO 8601带分隔符格式:'YYYY-MM-DD HH:MI:SS.ffffff±TZ'(如'2023-04-22 00:00:00.000000+02:00')
    • ISO 8601紧凑格式:'YYYY-MM-DDTHH:MI:SS±TZ'(如'2023-04-22T00:00:00+02:00')
      注意时区部分的符号(+/-)和冒号必须是英文符号。
  3. 简化测试验证
    可以先使用无毫秒的简化格式测试,确认解析正常后再添加毫秒:

    barman recover --target-time '2023-04-22 00:00:00+02:00' --remote-ssh-command "ssh postgres@pgdb-XXX" PGDB-XXX 20230416T214125 /var/lib/postgresql/13/main/
    
  4. 确认时间范围有效性
    确保目标时间在备份生成时间(20230416T214125)之后,且Barman服务器上有该时间点对应的WAL日志可用,否则即使格式正确也会恢复失败。

内容的提问来源于stack exchange,提问作者Dave_B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:52:53