首页 > 解决方案 > 如何解决通过cron作业使用pg_dump进行定期备份时生成零字节文件的问题?

问题描述

在 shell 脚本中使用 pg_dump 工具备份 Postgres 数据库时,如果我在 cron 中安排脚本,则会生成一个 0 字节的备份文件。

在 cron 作业中使用 2>&1 生成错误日志时,会生成以下错误文件:

/home/sample_bkp.sh:10:/home/sample_bkp.sh:-d:未找到备份目录:/home/bkp/2019_06_24_17_15 创建phhc数据库的备份pg_dump:服务器版本:9.2.4;pg_dump 版本:9.1.24 pg_dump:由于服务器版本不匹配而中止 pg_dump:*** 由于错误而中止

标签: postgresqlubuntucronpg-dump

解决方案


关键信息似乎是:

pg_dump: aborting because of server version mismatch

这意味着 的版本pg_dump比您尝试备份的数据库的版本旧。

既然你说它只发生cron在 ,环境中的某些东西一定会导致pg_dump选择错误。

由于 Ubuntu 发行版的包装脚本会调用实际的可执行文件,因此问题变得更加困难。

一种简单的尝试是卸载不再使用的旧 PostgreSQL 版本。

另一个想法是pg_dump使用正确可执行文件的绝对路径进行调用。


推荐阅读